Client device and application for facilitating deletion of photographs from memory

ABSTRACT

A client device operates via at least one application to: generate feature detection data for a plurality of photographs by performing a computer vision function on the plurality of photographs; facilitate, based on the selection data generated via a graphical user interface, deletion of the at least one of the plurality of photographs corresponding to images of the particular person to be deleted from the memory; facilitate, based on selection data generated via the graphical user interface, deletion of the at least one of the plurality of photographs corresponding to images from a particular location to be deleted from the memory; and facilitate, based on selection data generated via the graphical user interface, deletion of the at least one of the plurality of photographs corresponding to images of a group of particular people to be deleted from the memory.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present U.S. Utility Patent application claims priority pursuant to35 U.S.C. § 120 as a continuation of U.S. Utility application Ser. No.17/658,699, entitled “FACILITATING DELETION OF APPLICATION DATA FROM AMEMORY OF A CLIENT DEVICE”, filed Apr. 11, 2022, which is a continuationof U.S. Utility application Ser. No. 16/541,358, entitled “SELECTINGAPPLICATION DATA FOR DELETION FROM MEMORY OF A CLIENT DEVICE”, filedAug. 15, 2019, issued as U.S. Pat. No. 11,334,525 on May 7, 2022, bothof which are hereby incorporated herein by reference in their entiretyand made part of the present U.S. Utility Patent Application for allpurposes.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable.

INCORPORATION-BY-REFERENCE OF MATERIAL SUBMITTED ON A COMPACT DISC

Not applicable.

BACKGROUND OF THE INVENTION Technical Field of the Invention

This invention relates generally to computer networks and data storage.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

FIG. 1 is a schematic block diagram of an embodiment of a client devicein accordance with the present invention;

FIG. 2A is a schematic block diagram of a plurality of modules of aclient device utilized to select application for deletion in accordancewith the present invention;

FIG. 2B is a schematic block diagram of a deletion evaluation module ofa client device in accordance with the present invention;

FIGS. 3A-3B are example illustrations of graphical user interfacesdisplaying deletion confirmation prompts in accordance with the presentinvention;

FIGS. 4A-4F are example illustrations of graphical user interfacesdisplaying deletion criteria prompts in accordance with the presentinvention; and

FIG. 5 is a logic diagram of an example of a method of selectingapplication data for deletion in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 illustrates an example embodiment of a client device 100 inaccordance with the present invention. The client device 100 can includea memory module 110 that utilizes one or more memory devices, aprocessing module 120 that utilizes one or more processors, atransceiver 130, and a display device 140, connected via bus 190. Clientdevice 100 can be implemented by utilizing a desktop computing device, alaptop, a tablet, a Personal Computer (PC), a mobile computing device, acellular device, a wearable device, or other computing device. Thetransceiver 130 can be operable to communicate bidirectionally via anetwork 150, which can include a cellular network, the Internet, a widearea network, a local area network, a satellite network, and/or otherwired and/or wireless network. The display device 140 can be operable todisplay at least one graphical user interface (GUI) 145 to a user of theclient device 100. The user can interact with graphical user interface145 by utilizing a touchscreen of the display device 140 and/or byutilizing another user input device of a keyboard, a mouse, amicrophone, or other component of client device 100 operable to collectuser input.

The client device 100 can be operable to execute a plurality of softwareapplications by utilizing the processing module 120. Correspondingapplication data 114 for each of the plurality of software applicationscan be stored in memory module 110 of the client device. Applicationdata 114 for some or all of the plurality of applications can bereceived via network 150, where the application data 114 includesinstallation instructions that, when executed by the processing module120, causes the client device to install the application data 114.Application data 114 for some or all of the applications can beinstalled in conjunction with installation of firmware or an operatingsystem of the client device 100. Alternatively, application data 114 forsome or all applications can be installed in isolation, for example, inresponse to a user selection via a GUI 145 displayed in conjunction withapplication data 114 for an application marketplace that enables theuser to select applications to be retrieved via network 150.

The application data 114 for each of the plurality of softwareapplications can include executable instructions that, when executed bythe processing module 120, cause the corresponding one of the pluralityof software applications to run, or otherwise be executed. The user canselect one of the plurality of applications to run by interacting with aGUI 145 of a home screen or other menu that prompts the user to selectfrom the plurality of software applications. In some embodiments, therunning of a particular software application causes the display device140 to display a GUI 145 of the particular software application whilethe particular software application is running. Executable instructionsfor one or more of the plurality of software application can be executedautomatically, for example, in response to detection of an interruptevent that causes the corresponding operational instructions to be run.In such embodiments, routines of some or all applications can be runningwhile a GUI 145 for a different application is displayed to the user.Some or all of the software applications can be stored in isolation andcan run in isolation, for example, where application data 114 iscontainerized and/or sandboxed.

In addition to the executable instructions, some or all of theapplication data 114 can further include various data files 116 that arestored locally via memory module 110 in conjunction with theapplication. These data files can be generated by the client device 100as a result of execution of the application data for the same ordifferent application, and/or can be downloaded by the client device 100via network 150 as a result of execution of the application data for thesame or different application. The data files 116 can include videofiles, audio files, image files, and/or other media files. The datafiles 116 can include text files, document files, or other files thatinclude textual data generated via user input by the user of clientdevice 100 and/or generated via user input to a different client devicecommunicating with client device 100 via the network. The data files 116can include application history files corresponding to previous use ofthe application by the user. In particular, the data files 116 can beseparate from the executable instructions of the application data, wherethe software application can continue to be run properly by the clientdevice 100 if these data files 116 are deleted and/or otherwise removedor altered in memory module 110.

Continued generation and storage of data files 116 by client device 100overtime can cause the memory module 110 of client device 100 toapproach and/or reach its memory capacity. In particular, large datafiles such as videos and/or photographs generated by a camera of theclient device 100 and/or downloaded by client device 100 via network 150can take up a valuable fraction of memory capacity of client device 100.In many cases, data files 116 will remain in storage in conjunction witha corresponding application until a user runs the application andinteracts with the GUI 145 to manually select data files 116 fordeletion from the application. Manually inspecting and selecting datafiles 116 for deletion can be timely, as this can require running eachof a plurality of independent applications one at a time, and, for eachparticular application, determining whether each of the plurality ofdata files 116 stored in conjunction with the particular applicationshould be deleted. This can require interacting with GUI 145 to viewand/or otherwise inspect each of the plurality of data files 116 of eachparticular application, for example, one at a time. In some cases, auser may not realize which applications are storing unnecessary datafiles, as these data files may have been long forgotten by the userand/or are otherwise not accessed by the user frequently or at all. Inthese cases, the user may not facilitate deletion of these forgottendata files, and these data files will thus remain in storage andcontinue to utilize space of memory module 110. In other cases, thetedious nature of manually selecting particular files for deletion maybe too daunting for the user, and the user may instead elect to deletelarge quantities of data files 116 all at once without inspecting thefiles first, which can result in accidental deletion of files the userwishes to access at a later time.

To mitigate this problem, a deletion service application can be executedby client device 100 to automatically select data files 116 that aredetermined to be unnecessary for further storage on client device 100,and to automatically facilitate deletion of these data files 116 fromstorage on client device 100. The memory module 110 can store deletionservice application data 112 that includes executable instructions that,when executed by the processing module 120, cause the deletion serviceapplication to be executed. Execution of deletion service applicationdata 112 for the deletion service application can include display a GUI145 of the deletion service application data 112, for example, to promptthe user to enter various deletion criteria, via user input to GUI 145,which is utilized by the deletion service application to determine whichtypes files of other application data 114 of other software applicationwill be identified for deletion. GUI 145 of the deletion serviceapplication data 112 can further prompt the user to inspect data files116 that were identified for deletion based on the deletion criteria,allowing the user to confirm deletion or deny deletion, via user inputto GUI 145, of each identified data file. Facilitating deletion of datafiles 116 confirmed for deletion can include removing the data files 116from application data of the corresponding application and/or caninclude otherwise allocating the portions of memory module 110 utilizedto store the corresponding data files 116 for storage of different data.

Facilitating deletion of data files 116 can further include transferringthe selected data files 116 to an archive storage system 170 via network150 by utilizing transceiver 130, as illustrated in FIG. 1 .Alternatively, a different communication interface of client device 100that facilitates a wired and/or wireless connection with the archivestorage system 170 can be utilized to transfer the data files. Thearchive storage system 170 can include at least one memory and can beimplemented by utilizing a memory card, external hard drive, externalmemory device, a server system utilized by the user for archive storageof data files of the user, and/or other external memory that is notincluded within client device 100. In some embodiments, the archivestorage system 170 corresponds to a server system associated with one ofthe plurality of software applications, where the one of the pluralityof software application corresponds to the particular application data114 from which a data file 116 is being deleted from. In suchembodiments, some or all the application data 114 of the softwareapplication may have been generated by and/or received from this serversystem.

The deletion service application data 112 can be received by thetransceiver 130 from a deletion service server system 160 via network150 as illustrated in FIG. 1 . For example, the deletion service serversystem can include at least one processor and memory of a computingsystem associated with an entity that generated and/or provides thedeletion service application data 112 for download by a plurality ofclient devices 100. Alternatively, the deletion service application data112 can be integrated within and/or can otherwise be downloaded inconjunction with firmware and/or an operating system of the clientdevice 100. For example, the deletion service application data 112 canbe generated and/or provided by an entity that manufactured the clientdevice 100 and/or by an entity that generated an operating system thatruns on the client device 100.

FIG. 2A illustrates an embodiment of a deletion process performed by thedeletion service application when executed by the processing module 120.In particular, the deletion service application data 112 can include afile extraction module 210, a deletion evaluation module 220, and/or adeletion module 230. The file extraction module 210, deletion evaluationmodule 220, and/or deletion module 230 can be implemented viacorresponding executable instructions of the deletion serviceapplication data 112 that, when executed by the processing module 120,cause the client device 100 to perform the functionality of the fileextraction module 210, a deletion evaluation module 220, and/or adeletion module 230, respectively, as discussed herein.

The file extraction module 210 can be operable to extract some or all ofthe data files 116 stored for some or all of the other applications incorresponding other application data 114 of memory module 110. Theextraction can include generating a full and/or compressed copy of eachof the candidate data files 1-N for processing by the deletion serviceapplication. In such embodiments, each of the candidate data files 1-Ngenerated by the file extraction module 210 and processed by thedeletion evaluation module 220 corresponds to a full and/or compressedcopy of some or all of a corresponding original data file 116 that is acandidate for deletion from memory module 110. In particular, as memorycapacity may already be constrained, the extraction can includeinspecting and/or copying metadata of each data file 116 stored withinapplication data of another application, or inspecting only a portion ofeach data file 116.

In some embodiments, the file extraction module can determine, based ondeletion criteria such as deletion criteria 226, whether the entirety ofa data file needs to be extracted based on inspection of metadata of thedata file itself and/or other metadata of the corresponding applicationdata 114 that indicates information relating to storage and/or accessits data files 116. For example, the deletion criteria may include arequired age of deletion candidate data files, a required infrequency ofaccess of deletion candidate data files, a required timeframe since lastaccess of deletion candidate data files, a required file type ofdeletion candidate data files, or other requirements that can beextracted from metadata without inspecting the data file itself. Thefile extraction module can first inspect and/or copy this metadata forcomparison to the deletion criteria. If the metadata of a data file,such as a data of creation of the data file, a number of times the datafile has been accessed, an amount of time since the last access of thedata file, and/or a type of the data file compares unfavorably to thecorresponding deletion criteria, the file extraction module candetermine to skip this data file, where this data file is not copiedand/or is otherwise not included in the set of candidate data files 1-N.If the metadata of the data file compares favorably to the correspondingdeletion criteria, a full or compressed copy of the metadata and/orcontent of the data file can be generated in response for processing bythe deletion evaluation module 220. Alternatively, this evaluation ofthe metadata alone is sufficient in determining that the data file bedeleted, and if the metadata of the data file compares favorably to thecorresponding deletion criteria, deletion of the data file is eitherfacilitated automatically, or is facilitated once user confirmation isreceived via GUI 145 via user input in response to deletion confirmationprompt 244.

In some embodiments, copies corresponding to each of the set ofcandidate data files 1-N are created and deleted one at a time. Inparticular, a copy of an individual data file 116 of the set ofcandidate data files 1-N can generated, and the copy can be processed bydeletion evaluation module 220. The copy is deleted once processing bydeletion evaluation module is complete, and another copy correspondingto another one of the set of candidate data files 1-N is then createdfor processing by deletion evaluation module 220. In some embodiments, aselected subset of the set of candidate data files 1-N are copied andevaluated in tandem, and once the tandem evaluation of the selectedsubset of the set of candidate data files 1-N is complete, the copies ofthe subset are deleted and a new selected subset of data files 116 arecopied for their own respective processing. For example, these selectedsubsets that are each evaluated in tandem, one at a time, can correspondto sets of similar data files, as discussed in further detail inconjunction with FIG. 2B.

The file extraction module 210 can extract data files 116 from the otherapplication data 114 in response to determining user permission for thedeletion service application to access some or all of the otherapplications has been granted. In particular, the GUI 145 can present aprompt for the user to select which ones of the plurality of the otherapplications the deletion service application has access to, where thefile extraction module 210 only accesses data files 116 that are storedapplication data for the selected applications.

In some embodiments, the file extraction module 210 can extract metadataor data files from application data even if they are not to be deleted.This can include access history data of various software applications,user account data associated with various software applications, and/orother pertinent information that may be useful in evaluating whethervarious data files should be deleted. This can include data files inapplication data of a first software application with content that, whenanalyzed, may indicate that other types of data files stored inapplication data of the same or different software application should bepreserved or deleted. This data can similarly be extracted fromapplication data of the corresponding software application and can beutilized by the deletion evaluation module 220 in determining which ofthe set of candidate data files 1-N should be deleted. Alternatively,some or all of this information can be obtained by querying a serversystem corresponding to one or more of the software applications, vianetwork 150, for information corresponding to the user's account and/orusage history of the software application, and/or by receiving thisinformation from one or more server systems via network 150 in response.

Once the set of candidate data files 1-N have been extracted, the set ofcandidate data files 1-N can be evaluated for deletion. The deletionevaluation module 220 can perform a deletion scoring function 222 oneach of the set of candidate data files 1-N. The deletion scoringfunction can utilize deletion criteria 226, which can be generated basedon user input to GUI 145 in response to a deletion criteria prompt 242displayed by GUI 145. The deletion scoring function can generate adeletion score for each of the candidate data files, where data filesdetermined to compare more favorably to the deletion criteria areassigned more favorable deletion scores than data files determined tocompare less favorably to the deletion criteria.

A file selection function 224 can be utilized to determine whether afile is selected for deletion, based on the corresponding deletionscore. In some embodiments, the deletion score is a binary valueindicating the file should be deleted when the data file comparesfavorably to the deletion criteria, and indicating the file should notbe deleted when the data file compares unfavorably to the deletioncriteria. In other embodiments, the deletion score is a discrete orcontinuous value that is compared to a deletion score threshold, wherethe file is selected for deletion if the deletion score comparesfavorably to a deletion score threshold, and where the file is notselected for deletion if the deletion score compares unfavorably to adeletion score threshold.

In some embodiments, performing the file selection function 224 includesranking some or all of the set of candidate data files 1-N by theirrespective deletion score, where ones of the set of candidate data files1-N with more favorable deletion scores are ranked higher than ones ofthe set of candidate data files 1-N with less favorable deletion scores.The ones of the ranked set of candidate data files 1-N that are selectedcan be based on deletion quota criteria, which can be determined basedon current memory capacity or current storage information for memorymodule 1101 based on user configurations determined based on user inputto GUI 145 in response to a prompt to select deletion quota criteria;and/or can otherwise indicate a number of files or amount of data to bedeleted. Performing the file selection function 224 can further includeselecting a predetermined number of highest ranked ones of the set ofcandidate data files 1-N for deletion. Performing the file selectionfunction 224 can alternatively include selecting highest ranked ones ofthe set of candidate data files 1-N for deletion that are necessary tomeet or exceed a predetermined total file size for deletion. The totalfile size for deletion can be based on a maximum memory capacity and/ora desired amount of available memory capacity, and can be further basedon the current memory capacity, where the total file size for deletionis a difference between the current memory capacity and the maximummemory capacity and/or the desired amount of available memory capacity.In some embodiments, the deletion score is further based on the size ofthe data file where larger data files are assigned more highly rankeddeletion scores, enabling a smaller number of files to be deleted tomeet the deletion quota criteria.

The deletion criteria can be predetermined and/or can be configured viauser input to GUI 145. The deletion criteria can include a plurality ofautomatic preservation factors. If any of these automatic preservationfactors are met, the data file can automatically be not selected fordeletion regardless of whether other factors are met. In someembodiments, at least a threshold number of conditions and/or all of aset of conditions must be determined to be met for the automaticpreservation factor to be met.

The deletion criteria can include a plurality of automatic deletionfactors. If any of these automatic deletion factors are met, the datafile can automatically be selected for deletion regardless of whetherother factors are met. In some embodiments, at least a threshold numberof conditions and/or all of a set of conditions must be determined to bemet for the automatic deletion factor to be met. If automaticpreservation factors and automatic deletion factors exist, each of thesefactors can be ranked via user configuration or a predetermination todetermine which factors take precedent.

Alternatively or in addition to automatic deletion factors, the deletioncriteria can include a plurality of deletion weighting factors 1-k. Avalue can be computed for each of the plurality of deletion weightingfactors for each data file. Each of the plurality of deletion weightingfactors, if met, can cause the deletion score to be more favorable. Thedeletion score can be generated by computing a sum or weighted sum ofthe values computed for each deletion weighting factor 1-k. For example,a deletion score s for a data file can be computer as the sum, over allof the deletion weighting factors 1-k, of the product of the value v_(i)computed for the ith deletion weighing factor and its correspondingweight w_(i), where v_(i) and w_(i) are positive values and where highervalues of s correspond to more favorable deletion scores that are morelikely to result in deletion of the corresponding data file:

$s = {\sum\limits_{i = 1}^{k}{w_{i}v_{i}}}$

Deletion weighting factors can include factors such as a storage sizefactor, an access history factor, an originating source factor, and anapplication type factor. Determining the storage size factor is met caninclude determining the size of the data file exceeds a storage sizethreshold indicated in the deletion criteria. Determining the accesshistory factor is met can include determining the number of accesses isless than an access number threshold indicated in the deletion criteria;can include determining frequency of accesses is less than an accessfrequency threshold indicated in the deletion criteria; and/or caninclude determining an amount of time since the data file was lastaccessed exceeds an access recency threshold indicated in the deletioncriteria. Determining the originating source factor is met can includedetermining the originating source of the file matches or otherwisecompares favorably to one of a set of particular originating sourcesindicated in the deletion criteria. Determining the application typefactor is met can include determining the software application in whichthe data file is stored matches or otherwise compares favorably to oneof a set of particular software application and/or one of a set ofsoftware application types indicated in the deletion criteria. In thisexample, the values for the deletion weighting factors can correspond tobinary values indicating whether or not the deletion weighting factorwas met, and the deletion score can correspond to a number of thedeletion weighting factors that are met and/or a weighted sum of thedeletion weighing factors that are met.

Alternatively, the values for some or all of the plurality of deletionweighting factors can correspond to a discrete or continuous valuecalculated by the deletion scoring function, where a more favorablevalue is assigned if the particular deletion weighting factor indicatesthe data file is more favorable for deletion. For example, rather thancomparing the storage size to a storage threshold, the deletionweighting factor corresponding to storage size can be proportional toand/or an increasing function of the size of the data file. Similarly,the deletion weighting factor corresponding to access can be a functionof number of accesses, frequency of access, and/or time since lastaccess. Deletion weighting factors can utilize any other factors asdiscussed herein, such as factors based on content of a data file itselfand/or other user configurable factors relating to the data files storedon client device 100, and the corresponding values can be discrete,continuous, and/or binary values calculated based on these otherfactors.

The weighted sum can be applied to the binary, discrete, and/orcontinuous values computed for each deletion weighing factor. Theweights can be assigned to each deletion weighting factor based on itsrelative importance in dictating deletion. This can be predeterminedand/or configured by the user, for example, where the user selectsweights for each deletion weighting factor via GUI 145. The user cansimilarly rank the plurality of deletion weighting factors based ontheir relative importance via GUI 145, and the weights can be determinedbased on the ranking of the deletion weighting factors, where morefavorable weights are assigned to higher ranked deletion weightingfactors.

Alternatively or in addition to automatic preservation factors, thedeletion criteria can include a plurality of preservation weightingfactors 1-j. A binary, discrete, and/or continuous value can be computedfor each of the plurality of preservation weighting factors for eachdata file. Each of the plurality of preservation weighting factors, ifmet, can cause the deletion score to be less favorable. Alternatively,higher or otherwise more favorable discrete or continuous valuescomputed for each preservation weighting factor can cause the deletionscore to be less favorable. Preservation weighting factors can similarlyinclude, for example, originating source factors, and/or applicationtype factors, where a data file matching or comparing favorably to aselected originating source and/or application type, indicated in thedeletion criteria, for which data files should be preserved can cause adata file to have a lower deletion score.

The deletion score can be generated by computing a sum or weighted sumof the values computed for each preservation weighting factor. This canbe computed in conjunction with the deletion weighting factors, wherethe sum and/or weighted sums of values computed for the preservationweighting factors 1-j detracts from the deletion score. The weighted sumover all of the preservation weighting factors 1-j can be computed ofthe product of the value p_(i) computed for the ith preservationweighing factor and its corresponding weight y_(i). The values p_(i) andy_(i) can similarly be positive values, where higher values of scorrespond to deletion scores that are more likely to result in deletionof the data file.

$s = {\left( {\sum\limits_{i = 1}^{k}{w_{i}v_{i}}} \right) - \left( {\sum\limits_{i = 1}^{j}{y_{i}p_{i}}} \right)}$

The weights assigned to each deletion weighting factor and preservationweighting factor, respectively, can dictate the relative importance ofeach preservation weighting factor and each deletion weighting factor.Alternatively, the relative importance of the preservation weightingfactors and deletion weighing factors can further be dictated by adeletion factor q, which can also be user configurable and indicated inthe deletion criteria.

$s = {{q\left( {\sum\limits_{i = 1}^{k}{w_{i}v_{i}}} \right)} - {\left( {1 - q} \right)\left( {\sum\limits_{i = 1}^{j}{y_{i}p_{i}}} \right)}}$

Once the file selection function 224 has been performed on the set ofcandidate data files 1-N, the subset of the set of candidate files thatare identified for deletion by the file selection function can bedeleted from memory automatically and/or can be transferred to anarchive storage system 170 automatically via deletion module 230.Alternatively, some or all of this deletion data file subset identifiedfor deletion can be presented to the user via GUI 145, allowing the userto make the final decision as to whether or not these files are deleted.A deletion confirmation prompt 244 can be presented to the user,prompting the user to select which ones of the deletion data file subsetshould be deleted and/or archived. Metadata, file name, filedescriptors, and/or compressed or full content of the file can bedisplayed to the user to aid the user in making their decision. This caninclude a copy of the file generated by the file extraction module 210and/or portions of the data file extracted by the file extraction module210. Alternatively, the original file stored in memory module 110 canaccessed for display to the user and/or inspection by the user.

Once a subset of the deletion data file subset are confirmed fordeletion via user input, the data files corresponding to this confirmeddeletion data file subset can be deleted from memory module 110. Fileidentifiers and/or memory locations corresponding to the confirmeddeletion data file subset can be utilized by a deletion module 230 tofacilitate deletion of the corresponding data files from memory module110. This can include sending deletion commands to memory module 110with the corresponding file identifiers and/or memory locations.Alternatively, deletion can be facilitated through the running of thecorresponding software application, where the software applicationfacilitates its own deletion of its data files. In these embodiments,the deletion module 230 can facilitate automatically running each of theplurality of software applications via processing module 120 andautomatically sending deletion commands via the software application todelete the corresponding data files from the application data of thesoftware application. Alternatively, as such permissions may beprohibited, the deletion module 230 can facilitate running of thecorresponding software application, for example, causing the softwareapplication to automatically present its deletion menu via a GUI 145 ofthe software application and/or to automatically present one of its datafiles of the confirmed deletion data file subset via its deletion menu.The user can interact with the GUI of the corresponding softwareapplication to facilitate deletion of the data files accordingly.

The deletion module 230 can further be operable to transfer some or allof the data files of the confirmed deletion data file subset to anarchive storage system 170 via transceiver 130 or a differentcommunication interface. In some embodiments, the GUI 145 can prompt theuser to connect a hard drive, memory card, or other external memory tothe client device 100 via a wired and/or wireless connection. Thetransfer of the files can be facilitated once the connection to theexternal memory is established, and the files can be deleted once theyare determined to be saved on the external memory. In some embodiments,the deletion module 230 can automatically run a software applicationthat stores a data file in the confirmed deletion data file subset andinstruct the software application to transfer the data file to storageon a server system associated with the software application, forexample, in storage linked to a user account associated with the user ofthe software application for access by the user via the same ordifferent client device 100 via network 150.

FIG. 2B illustrates an embodiment of deletion evaluation module 220 thatis further operable to perform a similarity function 252. In particular,the deletion service application can identify duplicate and/or otherwisesimilar data files that are redundant and/or otherwise do not all needto be stored on the client device 100. The similarity function can beperformed on the pairs of and/or subsets of the set of candidate datafiles to identify one or more groupings of similar and/or duplicate datafiles. This can include comparing content of pairs of data files,comparing file creation time and/or file creation source of pairs ofdata files, comparing types of pairs of data files, performing aclustering function on the set of candidate data files, and/or otherwiseperforming a function on pairs or other proper subsets of the set ofcandidate data files to generate a similarity score between pairs ofdata files and/or to otherwise generate groupings of data files. Thesimilarity score of a pair of data files can be compared to a similaritythreshold, and the pair can be determined to be similar if thesimilarity score is within or otherwise compares favorably to asimilarity threshold. Alternatively, a similarity score between eachdata file in a subset and a mean data file value calculated for the datafiles in the subset can be compared to the similarity threshold, wherethe subset of data files is considered a similar subset if thesimilarity score between every data file in the subset and the mean datafile value compares favorably to the similarity threshold. In someembodiments, the similarity threshold requires an exact match, whereonly duplicate sets of files are identified. Alternatively, thesimilarity threshold can be looser to allow data files that are notidentical, but still similar enough to be considered redundant, to beidentified. For example, image files that are determined to be differentfiltered and/or edited versions of the same original image, and/or imagefiles that are determined to have been all captured in a same rapidburst of images, and/or a same photo shoot of images of people in asimilar pose and/or of objects and/or scenery in a similar orientationcan be identified as substantially similar or otherwise redundant, eventhough they are not exactly identical.

The deletion scoring function 222 can be performed on data files withineach identified subset of similar data files, such as a similar datafile subset 1-R. A deletion score can be generated in the same ordifferent fashion as described in conjunction with FIG. 2A for each datafile in a similar data file subset 1-R. For example, data files of ahigher quality, data files that have been accessed more frequently, datafiles that take up a smaller amount of memory, and/or data files withother desirable qualities indicated in the deletion criteria, relativeto the other data files in the similar data file subset 1-R, can beassigned lower deletion scores than the other data files in the similardata file subset 1-R. The file selection function 224 can be performedon the similar data file subset 1-R by utilizing the correspondingdeletion scores 1-R to rank the similar data file subset 1-R and/or todetermine the data file in the subset with the lowest deletion score.The data files in the subset with the lowest deletion score can beidentified to be kept, and the remaining data files in the subset can beidentified for deletion in the deletion data file subset.

The user can similarly be presented with the files in the deletion datafile subset via deletion confirmation prompt 244 as discussed in FIG.2A. The user can similarly confirm that some or all of these similarfiles be deleted. In some embodiments, the user can be presented withall of the files in the similar data file subset 1-R, including the datafile with the lowest deletion score. The user can select which one ormore of the similar data files be kept, and the remaining data files inthe similar subset can be deleted. The similar data file subset 1-R canbe presented to the user in accordance with the ordering dictated by theranking of the deletion scores 1-R, for example, where the deletionconfirmation prompt 244 indicates a recommendation that the data file inthe similar data file subset 1-R with the lowest deletion score bepreserved and that the rest of the data files be deleted. In someembodiments, once the similar data file subset 1-R is identified byperformance of the similarity function 252, all of the similar data filesubset 1-R is automatically presented to the user without performing thedeletion scoring function, and the user can elect which of the similardata files are preserved without being provided such a recommendation.

In some embodiments, the similar data file subset 1-R is only presentedto the user if the corresponding similarity score for the similar datafile subset 1-R is less similar than and/or otherwise comparesunfavorably to a second similarity threshold, for example, that isstricter than the first similarity threshold utilized to identify thesimilar data file subset 1-R. In particular, all but one of a set ofduplicate data files and/or extremely similar files can automatically bedeleted without user confirmation. A set of similar data file subset 1-Rthat are similar enough to be considered redundant, but not similarenough to dictate deletion without user review, can be presented to theuser via deletion confirmation prompt 244. The user can configure thesimilarity function, the first similarity threshold, and/or othercriteria utilized to identify data files as similar to generate similardata file subsets. The user can configure the second similaritythreshold and/or other criteria utilized to determine whether or notsimilar data file subset 1-R need be reviewed and/or can be deletedautomatically.

FIG. 3A presents an example embodiment of GUI 145 displaying deletionconfirmation prompt 244. Each data file can be displayed and the usercan elect whether to keep the data file, delete the data filepermanently, and/or transfer the data file to an archive storage system170. The data files can be presented in an ordering in accordance withthe ranking of their respective deletion scores, where data files withmost favorable deletion scores and/or with data files that met anautomatic deletion criteria are presented first and/or at the top. Thedata files can be presented one at a time via GUI 145, and/or can bepresented in the same display. In some embodiments, the user can scrollthrough a list of data files 1-K identified for deletion, where thehighest ranked data files with most favorable deletion scores are inview, and where the user must scroll to view lower ranked data fileswith less favorable deletion scores. In some embodiments, the data filesare sorted by its application in which it is stored, where the GUIpresents ones of the data files stored in the application data for afirst particular application first, and then presents other data filesstored in application data for another particular application next, oncethe user has reviewed the data files stored in the first particularapplication.

The data file can be displayed along with timestamp data; originatingsource data; information indicating which application the data file isstored in; size of the data file; access frequency to the data file;content of the data file; the deletion score for the data file;indications of which of the automatic deletion factors; deletionweighting factors and/or preservation weighting factors were determinedto be met; individual values calculated for some or all deletionweighting factors and/or preservation weighting factors; and/or otherreasoning as to why the data file was flagged for deletion. Thisinformation can aid the user in determining whether the file should bedeleted. The user can configure which of this information is displayedvia GUI 145.

If the user elects to preserve one or more of the presented data filesfor deletion, the deletion service application can automaticallyidentify more data files for deletion in response. This can includeselecting other ones of the set of candidate data files for deletionwith next highest ranked deletion scores that were not included in theoriginally identified subset. In particular, if the user chooses topreserve too many files and/or if the files selected for deletion do notmeet the deletion quota criteria, a number of additional files that arenext highest ranked can be automatically selected and presented to theuser via the GUI 145. Alternatively, some or all of the deletioncriteria can be automatically loosened to ensure more files areidentified as deletion candidates and/or are presented to the user. Thiscan include prompting the user to select deletion criteria to be changedand/or loosened via GUI 145 if not enough files are identified fordeletion and/or confirmed for deletion by the user to meet the deletionquota criteria. This process can repeat until the user has selected todelete a sufficient number of files and/or has selected to delete datafiles with a total amount of data required and/or desired to be deletedas indicated in the deletion quota criteria.

The deletion service application can alternatively and/or additionallyidentify entire software applications installed on client device 100that should be uninstalled, where the corresponding application data 114is deleted from the client device entirely. The deletion criteria cansimilarly indicate factors utilized to determine whether softwareapplications be uninstalled. The same or different automatic deletionfactors, automatic preservation factors, deletion weighting factors,and/or preservation weighting factors can be utilized to generatedeletion scores and/or to identify software applications foruninstalling. For example, the deletion criteria can include the accesshistory factors, where software applications that are infrequently runand/or that have not been run recently are assigned higher deletionscores. This evaluation of software applications can be a separateprocess from evaluating data files for deletion and/or can be performedin conjunction with evaluating data files for deletion, for example,where data files and software applications are assigned deletion scoresand are ranked in the same ranking. The ranking assigned to softwareapplications can further be a function of the deletion scores assignedto their data files, for example, where software applications with ahigh proportion of data files identified for deletion are more likely tobe deleted, and where software applications with at least one data filethat meets the automatic preservation factors will not be deleted.

FIG. 3B presents another example embodiment of GUI 145 displayingdeletion confirmation prompt 244, where other applications identifiedfor uninstalling are displayed in the same or different fashion as thedata files as discussed in conjunction with FIG. 3A. A visual icon,name, or other identifier of these applications can be displayed, andcan be presented in an ordering corresponding to the ranking of thedeletion scores for the software applications. Information such asaccess history; data size of the application; type of the softwareapplication; whether or not user data and/or some or all data files arebacked up on a user account on a server system associated with thesoftware application; examples of data files stored in the applicationdata for the software application that have low deletion scores and/orthat meet automatic preservation factors and/or other preservationweighing factors; the deletion score and/or individual values forautomatic deletion factors, deletion weighing factors, preservationweighing factors, and/or automatic preservation factors for data filesstored by the software application and/or for the software applicationas a whole; other reasoning as to why the software application wasselected for deletion; and/or other information about the softwareapplication that could aid the user in determining whether theapplication be uninstalled can be presented in conjunction with eachidentified software application via GUI 145. The user can similarlyelect whether to keep or uninstall each application. In someembodiments, if an application is determined to be uninstalled, datafiles can similarly be archived to an archive storage system 170. Insuch embodiments, the user can select whether all data files be archivedand/or can individually indicate which data files be archived.

FIGS. 4A-4F present example embodiments of deletion criteria prompt 242displayed via GUI 145. Deletion criteria can be based on various userselections and/or entries in response to display of one or more deletioncriteria prompts 242.

As illustrated in FIG. 4A, the user can select which types of filesshould be searched and/or otherwise considered in the set of candidatedata files 1-N. The file extraction module 210 can automaticallydetermine to extract and/or copy files that compare favorably to filetype selections indicated by the user. These file types can includephotos or other image files, audio files, document files, messaginghistory of a messaging application and/or SMS or MMS text messagesreceived via a cellular service utilized by the client device; contactentries for contacts stored by a contacts application, for example, forutilization by communicating via the cellular service and/or forcommunicating via another messaging application; custom data typesgenerated and/or stored for particular software applications installedon client device 100; and/or other files types of data files. The usercan further provide a ranking and/or weights to different types of filesand/or to the different applications from which the files originated tobe utilized in generating the deletion score.

In some embodiments, the set of candidate data files 1-N can include aset of duplicate data files extracted from the application data of thesame application or extracted from application data of multiple,different applications. As used herein, a set of duplicate data filescan correspond to a set of data files such as photographs, videos,images, audio files, document files, text files, and/or other files withcontent that matches exactly and/or that is substantially identical. Theuser can select whether or not such duplicate files be deleted. Thisdeletion criteria can be utilized by the deletion evaluation module 220to automatically delete ones of the set of candidate data files 1-N thatare determined to be a duplicate of another one of the set of candidatedata files 1-N and/or that are determined to be a duplicate of anotherdata file stored in memory module 110. For example, this can be utilizedin performing similarity function 252 to identify similar data filesubsets and to select one of the data files in the similar data filesubset to be kept in memory, as discussed in conjunction with FIG. 2B.This can include comparing file names, metadata of the file, and/orcontent of the file itself to determine if two or more files of the setof candidate data files 1-N are duplicated. This can include comparingtext of text files, image data of image files and/or video files, audiodata of audio files, and/or otherwise comparing content of pairs offiles to determine if the content is the same and/or substantially thesame. In some embodiments, if a subset of the set of candidate datafiles 1-N are determined to be duplicates, one of this subset ofduplicate files is kept, and the rest of the duplicate files in thissubset are deleted. This can occur automatically and/or the user canconfirm deletion of the duplicate files. Determining that a data file isa duplicate of another data files stored by client device 100 cancorrespond to an automatic deletion factor or a deletion weighing factorutilized to generate the deletion score.

The user can select how often files are searched for deletion by thedeletion service application by entering and/or selecting a frequency atwhich the deletion process illustrated in FIG. 2A is performed for datafiles on the client device 100, or otherwise indicating which times thedeletion service application should identify files for deletion. Thedeletion service application can determine if any changes in storagehave occurred since the last deletion process was facilitated. Inparticular, if previously extracted files in a previous set of candidatedata files 1-N were not included in the deletion data file subset inperforming the file selection function 224 and/or were identified by theuser to be kept in response to user input to the deletion confirmationprompt 244, these files can be ignored by file extraction module 210 infuture performance of the deletion process. In some embodiments, thefile extraction module only extracts files that were not included in theset of candidate data files 1-N in any previous performances of thedeletion process.

The user can select whether or not files determined to already bearchived should be deleted from client device 100. For example, filesalready stored on an archive storage system 170 can be automaticallyidentified for deletion. The deletion evaluation module 220 candetermine that the candidate data file is also stored on an archivestorage system 170 based on determining that the processing module 120facilitated storage of the data file on the archive storage system 170by previously transmitting the data file to the archive storage system170 for storage via transceiver 130 and/or a different communicationport. The deletion evaluation module 220 can determine that a candidatedata file is also stored on an archive storage system by facilitatingquerying of the archive storage system 170 via the network 150, andreceiving a response from the archive storage system 170 confirming thatthe data file is stored on the archive storage system 170. The deletionevaluation module 220 can determine that a candidate data file is alsostored on an archive storage system by determining that the data file isstored on a server system associated with the corresponding applicationwhose application data the data file is stored within. The deletionevaluation module 220 can determine that a candidate data file is alsostored on an archive storage system by extracting user settings of auser account associated with the corresponding application that indicatethat copies of data files of the application data including the datafile are stored on the server system associated with the correspondingapplication. The deletion evaluation module can determine that thecandidate data file is also stored on an archive storage system 170 inresponse to extracting metadata of the data file and/or a downloadhistory of the client device 100 to determine that the data filecorresponds to a copy of a data file stored on an archive storage systemor other external memory, where the data file was downloaded from thearchive storage system via network 150. For example, a data filedetermined to have been downloaded from a server system via the Internetcan be identified for deletion, as the data file is likely still storedon a different storage system and available for access. The deletionevaluation module can determine that the candidate data file is alsostored on an archive storage system 170 based on extracting metadata ofthe data file to determine an originating source that created the datafile is different from the client device 100. For example, a data filereceived via a messaging application, generated by a different clientdevice before transmission to the client device 100, can be identifiedfor deletion, as the data file is likely still stored on the differentclient device that generated the data file. The user can enter furtherdeletion criteria indicating which of these various indicators that thedata files is stored elsewhere and/or is available for access by theuser via network 150 are valid in determining the data file is indeedarchived. The user can enter further deletion criteria identifyingwhether some or all of a plurality of different archive storage systems170 as discussed herein are acceptable and/or reliable archive storagesystems 170, where only data files stored on the identified archivestorage systems 170 are identified for deletion. Determining that a datafile is archived can correspond to an automatic deletion factor or adeletion weighing factor utilized to generate the deletion score.

The user can select access history requirements, such as a minimum timeframe since last access of a file used to determine if a file should bedeleted. If last access to a data file is determined to have been longerthan the identified minimum time frame, it can be identified fordeletion. Determining that a data file has been not been accessed inaccordance with the access history requirements can correspond to anautomatic deletion factor or a deletion weighing factor utilized togenerate the deletion score. The user can alternatively or additionallyenter a required minimum frequency of access, a required number of timesthat the file was accessed within the time frame, and/or other accesshistory requirements. These access history requirements can be the sameor different for data files stored in different application data fordifferent software applications; for different types of data files; fordata files created by and/or received from different originatingsources; and/or for other distinguishing characteristics differentiatingdifferent data files identified by the user. The access history of datafiles can be determined from metadata of the data file itself; metadatain the application data for the corresponding software application;and/or can otherwise be detected and recorded by processing module 120,for example, in conjunction with execution of the deletion serviceapplication and/or in conjunction with execution of the application thatstores the data file. These access history requirements can similarly beset for software applications to be identified for uninstalling.

The user can select that software applications for which the usercancelled an account and/or subscription be uninstalled. Applicationsproviding services associated with a user account for the user and/orproviding services in exchange for regular payments provided by the usercan be uninstalled if the user later deletes their user account, stopspaying for the service, pauses their subscription, cancels theirsubscription, and/or never creates a subscription or account with theapplication after downloading the application. For example, if a userdeletes their user account associated with a software applicationcorresponding to a dating service, social media service, or otherservice hosted on a server system accessible via network 150, thecorresponding software application can be identified for deletion. Asanother example, if a user cancels their subscription and/or stopsmaking regular payments to a video streaming service, a music streamingservice, a meal delivery service, or other service hosted on a serversystem accessible via network 150 that requires regular payments tocontinue providing the service to the user, the corresponding softwareapplication can be identified for deletion. Determining that a useraccount has been deleted and/or that a subscription has been cancelledcan correspond to an automatic deletion factor or a deletion weighingfactor utilized to generate the deletion score for softwareapplications.

The deletion evaluation module 220 can extract relevant information fromthe application data of the corresponding application to determine thatthe user later deleted their user account with the application, stoppedpaying for the service provided by the application, pauses theirsubscription to the service provided by the software application, orcancels their subscription to the software application. The deletionevaluation module 220 can transmit a query to the server systemassociated with the software application via the transceiver 130, andcan receive a response to the query via transceiver 130 indicating thatthe user account does not exist and/or that the user does not have asubscription for the service provided by the software application. Theprocessing module 120 can track and/or record user interactions with thesoftware application corresponding to creation and/or deletion of a useraccount, utilized by the deletion evaluation module 220 to determinewhen the user account has been deleted. The processing module 120 cantrack electronic payments made to the entity associated with thesoftware application via other software applications corresponding toelectronic payment services to determine that the user has stoppedmaking regular payments to the entity the entity associated with thesoftware application.

The user can select that software applications providing duplicateservices be uninstalled. For example, software applications thatcorrespond to competing entities providing the same type of serviceand/or software applications that are otherwise determined to be similarcan be considered duplicate types of software applications. In somecases, duplicate types of software applications may be desirable, as auser may wish to have multiple game applications installed to playdifferent games at different times; to have multiple video streamingapplications installed to be able to select from differing contentprovided by the competing video streaming services; to have multipledating applications installed to be able to potentially connect withmore people; and/or to otherwise have multiple applications of the sametype installed due to the multiple applications providing greatervariety and/or opportunities. However, other types of softwareapplications may be redundant if duplicate types of softwareapplications are also installed. For example, a user is unlikely todesire use of multiple meal delivery services, as a single meal deliveryservice is likely sufficient in deliveries ingredients and/orpre-prepared meals to the user. In particular, a user may switch fromusing a first application to using a new application that the userprefers, and may forget to uninstall the first application and/or mayforget to unsubscribe to the first application.

Determining that a software application installed on the client deviceis the same type as another software application installed on the clientdevice can correspond to an automatic deletion factor or a deletionweighing factor utilized to generate the deletion score for softwareapplications. The deletion evaluation module 220 can select one of aplurality of applications providing the same type of service to be kept,and can delete the other ones of the plurality of applications. Forexample, the similarity function 252 can be performed on softwareapplications, and one of a similar set of software applicationsidentified by performing similarity function 252 can be selected to bekept and/or the similar set of software applications can be ranked fordeletion based on the deletion scores generated via deletion scoringfunction 222 as discussed in conjunction with FIG. 2B. The deletionscores can be generated as a function access frequency and/or accesshistory, as a function of installation date, and/or as a function ofsubscription history. For example, the lowest deletion score can beassigned to the software application that is accessed most frequently,and this application can be designated to be kept while the othersimilar applications are identified to be uninstalled. In someembodiments, if the user has a user account and/or subscription withmultiple similar applications, the deletion service application canfacilitate deletion of the user's account of the similar applicationsthat are to be uninstalled and/or cancellation of payments to cancelsubscription of the similar application that are to be uninstalled.Alternatively, the GUI can present a prompt recommending that the userdelete their account and/or cancel their subscription applicationsidentified to be uninstalled and/or confirmed by the user to beuninstalled.

FIG. 4B presents an example embodiment of deletion criteria prompt 242specifically relating to criteria utilized to delete image files, forexample, from an application that stores photos, videos, or other imagefiles. Some or all of these image files can be generated by clientdevice 100, for example, taken by a camera of the client device 100;generated by a photo editing application installed on the client device100 and/or an image file generating application installed on the clientdevice 100; and/or captured as a screenshot by client device 100 of aGUI 145 in conjunction with execution of a particular softwareapplication or of other image data displayed by display device 140.Alternatively, these image files may have been downloaded by the clientdevice 100 in response to being received from an archive storage system170, a server system associated with a particular one of the pluralityof software applications, and/or another client device via a messagingapplication installed on client device 100.

As used herein, originating source data of an image file can include anidentifier of a particular camera of the client device utilized tocapture the image; an indication that the image file corresponds to ascreenshot taken by the client device 100; an identifier of one of theplurality of software applications was being run with its GUI currentlydisplayed on the display device when an image file corresponding to ascreenshot was captured; an identifier of one of the plurality ofsoftware applications utilized to generate, edit, and/or download theimage file; an identifier of one of a plurality of contacts of the userfrom which the image file was received and/or by which the image filewas originally generated; an identifier of a particular client devicesfrom which the image file was received; geolocation data generated bythe client device 100 or a different client device 100 in conjunctionwith capturing the image data via a camera; timestamp data generated bythe generated by the client device 100 and/or a different client device100 indicating a time the image data was captured, edited, and/ordownloaded; and/or other information indicating when, where, and/or howthe image file was generated, edited, and/or downloaded to client device100.

In some embodiments, some or all of this originating source data can beweighted and/or ranked by the user, and/or otherwise can be utilized todetermine which image files should be deleted, based on theiroriginating source. For example, photos taken by the user via the cameraof their own client device 100 may be more valuable to the user thanphotos downloaded from elsewhere. Photos taken in particular locationsmay be more valuable to the user than photos taken in other locations.As discussed previously, whether an image was downloaded via a softwareapplication such as a web browser application, a social mediaapplication, and/or a messaging application may be indicative that theimage file is saved on other devices and/or is accessible to the uservia other locations. This may also be indicative that the image is lessvaluable to be saved because it wasn't taken by the user.

Furthermore, the type of camera used to capture a photo may beindicative of whether or not the photo should be preserved long term.For example, a user of a client device corresponding to a mobile devicemay take more purposeful photos with the rear-facing camera their mobiledevice to capture landscapes, architecture, group photos, and/or otherphotos that the user may intend to preserve and revisit for longerperiods of time after they are taken. The user may take less purposefulphotos with their front-facing camera to take pictures of their own faceand/or body that the user has less desire to keep and/or revisit longterm, and instead are intended for short-term amusement, fortransmission to a friend or other contact via a messaging application.Similarly, screenshots may be taken for short term use, for example, fortransmission to a friend or other contact via a messaging applicationand/or for short term reference.

The user can prioritize these originating sources by selecting rankingsand/or weights for any of these originating sources, based on their ownpersonal usage of various types of image files. The originating sourcesof image files in particular can be utilized as deletion weightingfactors and/or preservation weighting factors, where the rankings and/orweightings are utilized in generating the deletion score. Alternatively,some or all of the originating sources can correspond to automaticdeletion factors and/or automatic preservation factors. For example, asillustrated in FIG. 4B, the user can select that photos captures via thefront-facing of the client device and/or captured via a screenshot beselected for deletion. This automatic selection can be contingent on oneor more other deletion factors, for example, where these photos are onlyselected for deletion if they also compare unfavorably to a minimumaccess frequency threshold set by the user or a minimum time frame sincelatest access set by the user as discussed in conjunction with FIG. 4A.

Furthermore, as discussed previously, the user can select that duplicateimage files be deleted. For example, all but one of a group of identicalimage files can be deleted by the deletion service application, wherethis group of identical image files is determined to exactly match or besubstantially identical by performing the similarity function 252 with asimilarity threshold that requires the image data of the image files inthe group be exactly or substantially identical. For example, thesimilarity function can include performing a pixel comparison of pixelsin the same location for two different image files to determine whetheror not most or all of the pixels have the same and/or very similar pixelvalue.

The user can select that image files that have been transferred to anarchive storage system 170 and/or other external storage be deleted. Forexample, the user can specify that image files uploaded to a socialmedia profile be deleted and/or can specify that image files transmittedvia a messaging application be deleted. The user can further indicateparticular applications where, if an image file in the application dataof the particular application is determined to be transmitted to aserver system associated with one of the particular applications and/oris otherwise determined to be transmitted via transceiver 130 inconjunction with execution of one of the particular applications,trigger selection of the image file for deletion. These identifiedparticular applications can be the same or different from theapplication that stores the image file in its application data.

FIGS. 4C and 4D illustrate examples of deletion criteria promptsutilized to determine deletion criteria based on content of image files.In some embodiments, the deletion evaluation module 220 can perform acharacterization function on content corresponding to the image data ofsome or all image files in the candidate set of data files 1-N. Theinput of the characterization function can include pixel values of theimage data of the image file and/or the originating source data or othermetadata of the image file. The output of the characterization functioncan include characterizing information about the content of the imagefile. Performing the characterization function can include utilizing acomputer vision model to perform a computer vision function to performfeature detection and/or feature identification. The output can includeidentifiers of particular types of features detected in the image file,whether or not faces or people are detected in the image file,identifiers of the people detected in the image file based on utilizinga facial recognition function for the people detected in the image file,a horizon line detected in the image file, natural features and/orlandmarks detected in the image file, text detected in the image file,logos detected in the image file, or other features detected in theimage file. Performing the characterization function can includedetermining the size, orientation, and/or location of detected featuresin the image file, where the output includes metrics characterizing thesize, orientation, and/or location of detected features within the imagefile. Performing the characterization function can include generatingcolor histograms for image files by evaluating some or all pixel valuesof the image file and/or comparing colors in neighboring regions of theimage file where the output includes metrics characterizing the colors,brightness, contrast, sharpness, or other features of the photo. Some orall of this information can be determined by another softwareapplication and/or some or all of this information can be alreadyincluded in metadata of the image file, where the characterizationfunction extracts this information from the metadata. Performing thecharacterization function can include utilizing a machine learning modeltrained on a plurality of images of a training set in conjunction withidentifiers of features known to be included in the plurality of images.

Some or all of the automatic deletion factors, deletion weighingfactors, automatic preservation factors, and/or preservation weighingfactors can correspond to the presence of particular features detectedin the image data; the size, orientation, and/or location of thedetected features; the colors, brightness, contrast, sharpness of theimage data; and/or other aspects of the characterization data.

For example, as illustrated in FIG. 4C, automatic preservation factors,and/or preservation weighing factors can correspond to the detection ofany face in an image, the detection of the face of the user in an image,and/or the detection of a face of one of more particular peopleidentified by the user. The deletion evaluation module 220 can determineif a face detected in the image matches a face of the user and/or a faceof a particular person, such as one of a plurality of contacts extractedfrom application data of a contacts application, a messagingapplication, and/or a social media application. The deletion evaluationmodule 220 can determine facial characteristics that distinguish theuser and/or one of the particular people identified by the user byprocessing at least one other image files that include the user and/orthe other particular people. These photos can be retrieved from a socialmedia account of the user, a social media account of the particularpeople, from a contacts application, and/or from another applicationthat stores photos and/or accesses photos via network 150 withcorresponding metadata indicating identifiers of people included in thephoto. A facial recognition application can utilize these other photosknown to include the user or the particular people to determine whetherother photos included in the set of candidate data files 1-N includethese people. Alternatively, metadata of the image files can indicatewhether the user is included in the file and/or whether other particularpeople are included.

In some embodiments, if a photo is determined to have been captured by afront-facing camera of the client device 100, a face detected in thephoto can automatically be determined to correspond to the user. In someembodiments, if a photo is determined to have been captured by afront-facing camera of a different client device, and if the photo isdetermined to have been received by client device 100 from a particularcontact of the user via a messaging application or a social mediaapplication, a face detected in the photo can automatically bedetermined to correspond to the particular contact.

The user can select that photos taken in particular locations be saved.In particular, locations that are far from the user's home may beindicative of photos taken during travel and/or at significant locationsthat may be more valuable to the user. The user can select that photostaken at least a threshold distance away from the location of theirhome, and/or at least one other location selected by the user, be saved.Alternatively or in addition to saving photos that were taken outside ofa selected location area, the user can elect to save photos taken withina selected location area, such as a vacation city selected by the userand/or other location area selected by the user. For example, the usermay alternatively elect that photos taken within range of their home beautomatically saved.

The user can enter the address or other location data for their home,work, and/or or for any other frequently visited location.Alternatively, the geolocation data collected by the client device 100such as GPS data and/or cellular data identifying the location of clientdevice 100 can be utilized by the deletion service application toautomatically determine the location of the user's home, work, and/orother frequently visited location, for example, based on determining thecurrent location, determining one or more frequently visited locationsby client device 100, and/or determining a location that the clientdevice tends to be located between 2 am and 4 am or other timeframesthat the user is likely to be asleep at their home. Alternatively,application data and/or user account data of a map application, ridesharing application, retail delivery application, grocery deliveryapplication, meal delivery application, or other application that storesthe user's home address and/or work address can be extracted from memoryand/or received via network 150 for utilization in determine thelocation of the user's home.

The user can similarly enter the address and/or city name for vacationlocations and/or other locations where photos should be saved.Alternatively, the geolocation data collected by the client device 100such as GPS data and/or cellular data identifying the location of clientdevice 100 collected during a weekend, collected during a holiday,and/or collected at a time that the user is determined to be on vacationcan be utilized to determined vacation locations. Alternatively or inaddition, application data and/or user account data of a travel bookingapplication, such as an airline booking application, a hotel reservationapplication, a travel review application, a restaurant reviewapplication, and/or an excursion booking application, can be extractedfrom memory and/or received via network 150 to determine when and/orwhere a user was traveling. Alternatively or in addition, applicationdata and/or user account data of a social media application and/or eventbooking application can be utilized to determine events that the userhas RSVPed to, has purchased tickets for, and/or has otherwise plannedto attend and/or already attended. The user can select which of thesesoftware applications be utilized in determining events the userattended, and photos captured by the client device during the time of anevent the user attended and/or at the location where an event the userattended was hosted can be identified.

These locations and/or events selected by the user can be compared togeolocation data or other location information of originating sourcedata of image files in the set of candidate data files 1-N to determinewhether these photos were taken within a particular location identifiedby the user as a location where photos, if taken in the location, shouldbe preserved. Similarly, the locations can be compared to geolocationdata or other location information of originating source data of imagefiles in the set of candidate data files 1-N to determine whether thesephotos were taken outside a particular location identified by the useras a location where photos, if taken outside the location, should bepreserved.

The user can alternatively and/or additionally identify other locationsthat photos, if taken within or outside these other locations, beautomatically deleted. These other locations can be compared togeolocation data or other location information of originating sourcedata of image files in the set of candidate data files 1-N to determinewhether photos should be identified for automatic deletion.Alternatively, various locations can correspond to deletion weighingfactors and/or preservation weighing factors with user configuredweights utilized to generate the deletion score. The corresponding valuecan be a binary value indicating whether or not the image file wascaptured, generated, and/or downloaded in a particular location. Similarcriteria can be utilized to determine whether other types of data filesbe deleted based on whether they were captured, generated, and/ordownloaded in a particular location identified by the user.

The user can alternatively or in addition identify timeframes fordeletion and/or preservation, where data files generated, captured,and/or downloaded within the timeframe are deleted and/or preservedaccordingly.

The user can identify that photos received from particular contacts ofone or more contact applications, messaging applications and/or socialmedia applications be automatically preserved. The user can identify thesame and/or different set of contacts for different applications, or canindicate that photos received from a contact via any application bepreserved. This can include comparing the originating source data ofimage file in the set of candidate data files 1-N to the set of contactsidentified by the user to determine whether the image file was sent bythe identified contacts. The user can similarly identify that photosreceived from particular contacts of one or more contact applications,messaging applications and/or social media applications be automaticallydeleted. Alternatively, various contacts from which photos are receivedcan correspond to deletion weighing factors and/or preservation weighingfactors with user configured weights utilized to generate the deletionscore. The corresponding value can be a binary value indicating whetheror not a particular contact sent the image file. Similar criteria can beutilized to determine whether other types of data files be deleted basedon whether they were sent by particular contacts identified by the user.

The user can select that photos downloaded via execution of a particularsoftware application be preserved, that photos generated and/or editedvia execution of a particular software application be preserved, and/orthat screenshots taken of a GUI displayed in conjunction with running ofa particular software application be preserved. The user can similarlyselect that photos downloaded via execution of a particular softwareapplication be deleted, that photos generated and/or edited viaexecution of a particular software application be deleted, and/or thatscreenshots taken of a GUI displayed in conjunction with running of aparticular software application be deleted. Alternatively, varioussoftware applications executing in conjunction with download of an imagefile, generation of an image file, or screenshot of an image file cancorrespond to deletion weighing factors and/or preservation weighingfactors with user configured weights utilized to generate the deletionscore. The corresponding value can be a binary value indicating whetheror not a particular application was running to download the image fileand/or to capture a screenshot. Similar criteria can be utilized todetermine whether other types of data files be deleted based on whetherthey were generated by and/or downloaded by particular applicationsidentified by the user.

The user can indicate that if the photo was added by the user to analbum of a photo application of the client device 100, that it should bepreserved. The user can indicate that if the photo was added by the userto an album of a photo application the client device, that it should bedeleted. Whether a photo was added to one of a plurality of particularalbums can utilized as deletion weighing factors and/or preservationweighing factors. The corresponding value can be a binary valueindicating whether or not the image file was added to a particularalbum. Similar criteria can be utilized to determine whether other typesof data files be deleted based on whether they are added to particularfolders and/or storage locations of one or more particular applicationsin storage on client device 100.

In some embodiments, screenshots, photos captured by a camera of clientdevice 100, and/or downloaded photos may be utilized by the user storeimportant information for easy reference at a later time. Such imagefiles can include text or other data that the user may wish to referenceat a later time. These image files can correspond to images of recipes,passcodes, confirmation numbers, reservation details, membershipnumbers, photo identification cards, credit cards, two-stepauthentication access codes, business cards, event tickets, receipts,menus, messaging history screenshotted from a messaging application,barcodes, QR codes, tags identifying clothing or other retail, and/orother information the user may wish to reference at a later time. Theuser can select which ones of these types of information should be savedand/or deleted if included in image files stored in memory. The user canrank and/or weight these different types of information to be utilizedas preservation weighing factors and/or deletion weighing factors. Thecorresponding value can be a binary value indicating whether or not theimage file includes the particular type of information.

The output of the characterization function performed on image files canindicate whether text is present and/or can indicate whether the imageincludes one of these particular types of information. In someembodiments, performing the characterization function includesperforming a natural language processing function on text identified inthe image to differentiate between these different types of information.A computer vision function utilized in performing the characterizationfunction can further utilize known layouts, fonts, colors, dimensions,and/or GUIs utilized in the portrayal of these different types ofinformation. Furthermore, the originating source data can be utilized bythe characterization function in determining which type of informationis included in the image file. A machine learning model can be utilizedby the characterization function, where the machine learning model istrained on a plurality of images, text extracted from images, and/orcorresponding originating source data, for example, where the pluralityof images and/or text extracted from images are labeled with a known oneof the plurality of types of information.

For example, a screenshot taken of a GUI displayed by an airlineapplication may be determined to include an airline ticket and/orconfirmation number based on the originating source data indicating theairline application and/or based on the text in the image data includingknown airport codes, times, a name of an airline, a name of a type ofairplane, and/or the words “boarding time.” A photo taken by a camera ofthe client device with geolocation data that compares favorably to thelocation of a restaurant can be determined to correspond to a menu basedon the originating source data indicating the photo was taken in arestaurant, based on the text in the image data including a plurality ofwords corresponding to food items in conjunction with a plurality ofprices, based on the text including headers such as “appetizers”,“entrees”, and “desserts”, and/or based on other informationdistinguishing the menu.

In some cases, these image files may be desirable for a temporary amountof time. For example, a screenshot of a ticket and/or confirmation emailmay only be desirable up until the time of the event and/or travel forwhich the ticket and/or confirmation email is needed. In these cases, anevent time and/or travel time indicated on the ticket can be extractedfrom the image data automatically, and can be utilized to determine howlong the photo should be stored, where the photo is deleted at a timeafter the time and/or date posted on the ticket and is preserved beforea time and/or date posted on the ticket.

As another example, a screenshot of a receipt may only be desirableuntil the user requests payment and/or receives payment as reimbursementfor some or all of the purchase reflected by the receipt via a paymentapplication. The photo can be deleted at a time after the processingmodule 120 detects that payment for a line item and/or total amountlisted on the receipt is requested and/or received via a paymentapplication of the client device 100. The photo can be deleted at a timeafter the processing module 120 detects and/or that a payment with amemo indicating a date and/or retailer associated with the receipt hasbeen requested and/or received. Alternatively or in addition, the usercan indicate an amount of time that some or all of these particulartypes of information be stored, where the amount of time is the same ordifferent for different types of information.

The user can indicate that image files with other particular features beautomatically saved and/or deleted. For example, photos of famousscenery, famous landmarks, famous buildings, famous statues, and/orother iconic features can be automatically saved if detected. Theselandmarks can be detected utilizing the computer vision function and/orthe originating source data indicating the photo was captured by acamera of the client device and/or indicating that the photo wascaptured in a location where the famous feature is known to be located.As another example, photos of sunsets, sunrises, and/or other photosidentified by the user as visually appealing can be automatically saved.In some embodiments, the user can upload and/or indicate example imagefiles that include particular features and/or that are indicative of aparticular quality and/or style of photo that as worth preserving. Thiscan include such photos of pets, photos similar to other photos postedto social media, and/or photos with other features and/orcharacteristics the user indicates is worth preserving, as discussed infurther detail in conjunction with FIG. 4E.

FIG. 4D illustrates another embodiment of deletion confirmation prompt244 utilized to identify particular criteria for photos that should beidentified for deletion in the deletion process. The user can select todelete photos determined to include no faces. The user can select todelete photos determined to include no faces of people that are friendsand/or contacts of the user, for example, identified as friends orcontacts of the user in a social media account of the user and/or in acontacts application of the user. The user can select one or more socialmedia applications, messaging applications, and/or contacts applicationsto be utilized to determine the contacts of the user. Facial recognitioncan be applied to determine whether or not a face in the photocorresponds to a face of a social contact based on metadata of the imagefile, and/or based on example photos of the contacts supplied by theuser or downloaded from the server corresponding to the selectedsoftware application by utilizing the user account.

The user can select to delete photos that include faces of particularundesirable people identified by the user and/or based on example photosof the particular undesirable people provided as examples by the user.The user can alternatively select that photos be deleted if they includepeople that the user has deleted from their contacts in a contactsapplication and/or messaging application; people that the user hasblocked from sending telephone calls, text messages, and/or othermessages via a messaging application to the client device; people thatthe user has unfollowed and/or unfriended in a social media application;and/or people that send messages to the user via a messaging applicationthat the user does not responding to and/or responds to with a lowerfrequency. The user can alternatively or additionally select that photosor other files, received from messaging accounts and/or client devicesassociated with these people via a messaging application, be identifiedfor deletion. The user can alternatively or additionally select thatphotos or other files downloaded from a social media application beidentified for deletion if these photos or other files were determinedto have been uploaded to the social media application in conjunctionwith social media accounts associated with these people and/or viaclient devices determined to be associated with these people.

In some embodiments, the deletion service system can automaticallydetect a person with which the user has been determined to havediscontinued a romantic relationship or friendship relationship. Thiscan include extracting various application data for various softwareapplications installed on the client device, evaluating access historyto various software applications installed on the client device, and/orcan include receiving, via network 150, user account information fromone or more server systems associated one or more software applicationsinstalled of the client device. This can include first detecting thatthe user was in a romantic relationship with the person at a previoustime, and later determining the user is no longer in the romanticrelationship with the person at a later time.

Detecting the user has discontinued a romantic relationship with aperson can include determining a change in social media relationshipstatus of a user account of the user and/or of the person received froma server system of a social media application; based on recentinstallation and/or at least a threshold increase in frequency ofinteraction with of one or more dating applications by the user; basedon detecting at least a threshold decrease in terms of endearment,romantic emoticons and/or romantic language in text of messages sentand/or received via messaging applications to the person; based ondetecting at least a threshold increase in terms of endearment, romanticemoticons and/or romantic language in messages sent and/or received viamessaging applications to a different person; based on detecting least athreshold decrease in volume of messages and/or other communicationssent to and/or received from the person via one or more applications;based on geolocation data of the client device indicating that afrequency of time spent at a location associated with the person's homehas decreased by at least a threshold amount; and/or based on otherinformation extracted from application data of one or more softwareapplications stored on the client device 100 and/or received via thenetwork 150 as user account data received from server systems associatedwith one or more software applications installed on the client device100.

In some embodiments, detecting the user has discontinued a romanticrelationship with a person can include determining a frequency of use ofat least one emoticon determined to be associated with romance hasdecreased by at least a threshold amount in messages exchanged betweenthe user and the person in at least one messaging application. Detectingthe user has discontinued a romantic relationship with a person caninclude determining a volume or frequency of photographs included in themessages exchanged between the user and the person has decreased by atleast a threshold amount. Detecting the user has discontinued a romanticrelationship with a person can include determining a volume or frequencyof photographs that were specifically determined to have been taken by afront-facing camera of the client device has decreased in the messagesexchanged between the user and the person by at least a thresholdamount. Detecting the user has discontinued a romantic relationship witha person can include performing a computer vision function on each ofthe photographs exchanged in messages between the user and the person,and determining whether the user and/or the person is included in onesof the photographs, where the relationship is determined to bediscontinued in response to determining that a volume or frequency ofphotographs included in messages exchanged between the user and theperson that are determined to include the user in the and/or the personhas decreased by at least a threshold amount.

In some embodiments, the user will be prompted to confirm that aromantic relationship with this person has ended and/or will be promptedto confirm that photos that include this person should be identified fordeletion. In some embodiments, if at least a threshold number of otherpeople are also included in the photo, the photo will not be identifiedfor deletion.

In some embodiments, the inverse of some or all of these conditions canbe detected to determine the user has begun or is in a romanticrelationship or friendship relationship with a person. This can include,for example, detecting threshold volume and/or threshold amount ofincrease in of terms endearment exchanged between the user and aparticular person via messaging applications, a threshold volume orthreshold amount of increase in transmission of particular types offiles such as photos that include the user and/or photos taken viafront-facing camera exchanged between the user and/or particular,determining the user has uninstalled all of their dating applicationsthat were installed on the client device, and/or based on determiningother factors indicating the user has begun or is in a relationship.This person with which the user is determined to be in a relationshipcan thus be the person later determined to no longer be in arelationship with the user as discussed above.

Photos or other files, received via a messaging application frommessaging accounts and/or client devices associated with the person withwhich the romantic relationship has ended can be automaticallyidentified for deletion. Photos or other files downloaded from a socialmedia application can be identified for deletion if these photos orother files were determined to have been uploaded to the social mediaapplication in conjunction with social media accounts associated withthe person with which the romantic relationship has ended, and/or via aclient device determined to be associated with the person with which theromantic relationship has ended.

The user can select to delete photos determined to include at least athreshold proportion of people that are not smiling, that have theireyes closed, and/or or are not exhibiting another desirable facialexpression, static pose, or action pose indicated by the user. The usercan indicate that all people, or at least a selected thresholdproportion of people, must not exhibit the undesirable desirable facialexpression, static pose, or action pose for a photo to be preserved. Theuser can similarly indicate that all people, or at least a selectedthreshold proportion of people, must exhibit a desirable facialexpression, static pose, or action pose for a photo to be preserved. Thefacial expression, static pose, or action pose exhibited by each personin the photo can be identified in output of the characterizationfunction. In some embodiments, examples of desirable undesirable facialexpressions, static poses, or action poses can be indicated in exampleimage files selected by the user as discussed in conjunction with FIG.4E.

In some embodiments, this can be applied to determine whether or notattempted action shots were successful, for example, where an actionpose of a person in the photo is compared to a plurality of successfulexample action poses and/or a plurality of example failed action posesof the same type or different types, for example, included in exampleimage files selected by the user as discussed in conjunction with FIG.4E. The output of the characterization function can otherwise indicatedwhether or not the action shot attempted in the pose is successful.

In some embodiments, this can be applied to attempted group action shotsto determine whether all and/or at least a threshold number of people inthe photo successfully accomplished the action pose. This can includefirst determining whether the group action pose was attempted bydetecting that at least a threshold number of people in the photosuccessfully executed the action pose and/or by detecting that detectingthat at least a threshold number of people in the photo exhibit posesassociated with failed attempts of the action shot. This can furtherinclude determining whether a photo determined to correspond to a groupaction pose was successful by detecting that all of the people in thephoto or at least a threshold number of people in the photo exhibitposes corresponding to successful execution of the action pose. This canfurther include comparing the pose exhibited by each person anddetermining whether any people are exhibiting poses that are dissimilarfrom the average pose across all people in the photo by at least athreshold amount. Successful group action shots can be identified forpreservation and/or failed group action shots can be identified fordeletion. Alternatively, success and/or failure of an attempted groupaction shot can correspond to deletion weighing factors and/orpreservation weighing factors with user configured weights for differenttypes of action shots utilized to generate the deletion score. Thecorresponding value can be a binary value indicating whether or not aparticular type of action shot determined to have been attempted wassuccessful. Alternatively, the corresponding value can be a discrete orcontinuous value, resulting in a lower deletion score when the actionshot is more difficult and/or is successfully completed by more peopleand resulting in a higher deletion score when the action shot is lessdifficult and/or is successfully completed by less people.

For example, consider an attempted jumping photo, corresponding to aphoto of a group of people attempting to all jump in the air at the sametime. The photo can be determined to correspond to an attempted jumpingphoto in response to detecting that at least one person, and/or at leasta selected threshold proportion of people, are successfully jumping, arein the air, are not touching the ground, and/or are complete above thehorizon line of the photo. The photo can be determined to correspond toan attempted jumping photo in response to detecting that the group ofpeople are all lined up and facing the camera. Once the photo isdetermined to be an attempted jumping photo, it can further be evaluatedas to whether or not it corresponds to a successful jumping photo. Anattempted jumping photo can then be determined to be a successfuljumping photo in response to detecting that all of the people in thephoto, or a selected threshold proportion of people in the photo, are inthe air, are not touching the ground, and/or are complete above thehorizon line of the photo. If this condition is not met, the attemptedjumping photo can then be determined to be a failed jumping photo. Insome embodiments, an attempted jumping photo is determined to be asuccessful jumping photo in response to detecting that the feet, knees,and/or bottom portion of each person in the photo is within a thresholddistance from the ground. For example, feet can be detected in responseto detecting footwear in the photo, in response to detecting a logoknown to be associated with footwear, and/or by otherwise detectingfeet.

In some embodiments, determining whether an attempted jumping photo is asuccessful jumping photo includes determining the distance between thelowest portion of the body of every person in the photo and the ground.This can include calculating or estimating actual distances from theground based on the scale of the people in the photo and an averagehuman height. This can include calculating or estimating these distancesfrom the ground based on a determined height and/or orientation of thecamera based on the location of the horizon, based on the location ofbuildings, geometric features, and/or other features in the photo,and/or based on gyroscope and/or accelerometer data included in metadataof the image file. These distances can alternatively be calculatedbetween the lowest portion of the body of every person in the photo andthe bottom of the photo. Determining that an attempted jumping photo isa successful jumping photo includes performing a function on all ofthese calculated distances. For example, in response to determining thatthe difference between the maximum distance and the minimum distance iswithin a threshold height, the attempted jumping photo can be determinedto be a successful jumping photo, and is determined to be a failedjumping photo otherwise. In response to determining that the differencebetween any one of the distances and the mean distance is within athreshold deviation height, the attempted jumping photo can bedetermined to be a successful jumping photo, and is determined to be afailed jumping photo otherwise.

The user can indicate that photos that are blurry or are otherwise of alow quality be deleted. The user can specify that photos that are toodark, too bright, washed out, and/or otherwise obscure subject of thephoto be removed. The user can specify threshold average pixel values ofthe photo, and/or can indicate different locations of the photo, such asborders of the photo, that should have threshold average pixel values.For example, grayscale, RGB, and/or other pixel thresholds selected bythe user that correspond to a darkness threshold, a brightnessthreshold, and/or thresholds for particular colors. These thresholdpixel values can be compared to average pixel values determined forpixels within all of the image and/or a particular region of the image.If the average pixel values compare unfavorably to one or more thresholdpixel values, the photo can be identified for deletion and/or cancorrespond to deletion weighing factors that cause the photo to beassigned a higher deletion score.

The user can also specify that photos that obscure the face of at leastone person in the photo, or at least a threshold number of people in thephoto, be deleted. The user can specify that if at least a selectedpercentage of the user's face is determined to be covered, cropped,blurry, and/or otherwise obscured, that the photo be identified fordeletion and/or corresponds to a deletion weighing factor that causesthe photo to be assigned a higher deletion score. The user can similarlyspecify that other desired features, if obscured by more than a selectedthreshold amount, also be identified for deletion and/or be assigned ahigher deletion score.

The user can specify that crooked photos be identified for deletion. Theuser can specify a threshold maximum angle at which the detected horizonline can deviate from relative to the line parallel to the bottom or topof the photo. The user can similarly specify other threshold angles forother detected orientation of one or more other detected features of thephoto, such as people, faces, or buildings. If a detected horizon linein a photo, or other implicit vector dictating orientation of anotherfeature relative to the frame of the photo, exceeds or otherwisecompares unfavorably to the threshold maximum angle, the photo can beidentified for deletion.

Alternatively the angle of deviation from the line parallel to the topand bottom of the photo can correspond to a deletion weighing factor,where the value of this deletion weighing factor is a function of theangle between the line parallel to the top and bottom of the photo andthe line corresponding to the horizon line in the photo.

The user can specific that photos be targeted for deletion because theyviolate one or more other rules of proper photographic composition suchas a rule of thirds or a rule of contrast. Considering the rule ofthirds, a subject of the photograph such as a face or object isidentified and located in a photo. The location of the subject iscompared to a rule of thirds grid (3×3) having four points of interestcorresponding to the vertices of the central square of the grid. If thelocation of the subject does not intersect with one of these four pointsof interest, then the photo violates the rule of thirds. Furthermore, acontrast distribution can be analyzed to determine of sufficientcontrast is present in the photo. In this fashion, photos where subjectsare not located so as not to properly intersection the rule of thirdsgrid or not having sufficient contrast, can be targeted for deletion.

FIG. 4E presents another embodiment of deletion confirmation prompt 244.The user can indicate that image files similar to other example imagefiles be identified for deletion and/preservation. The user can beprompted via deletion criteria prompt 242 to select examples of one ormore image files stored by one or more applications that is similar toother image files stored on client device 100 that the user wishes to bepreserved and/or deleted, where the example image files correspond tothe one or more image files selected by the user. The user can beprompted via deletion criteria prompt 242 to upload one or more imagefiles that are similar to image files stored on client device 100 thatthe user wishes to be preserved and/or deleted, where the example imagefiles correspond to the one or more image files uploaded by the user.The user can be prompted via deletion criteria prompt 242 to take one ormore pictures via a camera of client device 100 that are similar toimage files stored on client device 100 that the user wishes to bepreserved and/or deleted, where the example image files correspond tothe one or more image files uploaded by the user.

For example, photos of particular features identified as important tothe user, such as the user's pet, can be automatically saved. In thesecases, these features may require that the user select a saved imagefile and/or upload one or more pictures of the pet or other importantfeature identified by the user. For example, example image files of auser's dog can be utilized by the deletion evaluation module to, forexample, distinguish the user's dog from pictures of other dogs taken bythe user, where pictures of the user's dog are saved and/or are higherprioritized for preservation that pictures of other dogs.

The example image files for deletion and/or example image files forpreservation can be processed to determine the most prominentcommonality between the image files, such as type, size, orientation,and/or location of features detected in at least a threshold number ofthe example image files; color characteristic, contract characteristics,brightness characteristics and/or sharpness characteristics that arecommon to at least a threshold number of the example image files; and/ororiginating source data and/or other metadata of the example image filescommon to at least a threshold number of the example image files. Theprocessing can further include distinguishing the most prominentcharacteristics that differentiate the example image files for deletionand the example image files for preservation. This can includeperforming a clustering function on the example image files to identifydifferent prominent features distinguishing different groupings of theexample image files.

Processing the example image files for deletion and/or example imagefiles for preservation can include training a machine learning model onthe example image files. The trained machine learning model and/ordetermined commonalities can be utilized to perform a similarityfunction and/or a detection function on image files of the set ofcandidate data files 1-N. The similarity function can be the same ordifferent from similarity function 252. In particular, similarityfunction 252 can be utilized to identify exactly or substantiallyidentical image files based on strict a similarity threshold, while thissimilarity function can be instead utilized to identify image files withsimilar characteristics and/or detected features as the example imagefiles based on a looser similarity threshold.

The output of the similarity function can include a similarity score,where an image file is determined to be similar to the example imagefiles if the similarity score compares favorably to a similaritythreshold. The output of the similarity function can indicate whetherthe input image file is the most dissimilar file amongst the grouping ofthe example image files and the input image file, where the image fileis determined to be similar to the example image files if the inputimage file is not the most dissimilar file amongst the grouping of theexample image files and the input image file and/or is not furthest froma mean image file generated for the grouping. The output of thedetection function can include an indication of whether or not one ormore features, determined to be included in some or all of the exampleimage files, was also included in the input image file. If at least athreshold number of features common to at least a threshold number ofthe example image files are determined to be included in an input imagefile, it can be determined to be similar to the example image files. Theinput image file can be preserved if it is determined to be similar tothe example image files for preservation, and/or a value correspondingto a preservation weighing factor can be a function of the similarityscore determined for the input image file. The input image file can beidentified for deletion if it is determined to be similar to the exampleimage files for deletion, and/or a value corresponding to a deletionweighing factor can be a function of the similarity score determined forthe input image file.

In some embodiments the example image files can correspond to files thatwere not manually selected by the user. For example, the user canindicate via GUI 145 that other image files that are determined to besimilar to previously deleted files also be identified for deletion,and/or these files can be identified for deletion automatically. Exampleimage files for deletion can thus correspond to files determined to havebeen previously deleted from memory module 110 by the user of clientdevice 100 via interaction with the corresponding software applicationand/or via interaction with the deletion confirmation prompt 244 inconjunction with a previous deletion process of the deletion serviceapplication. Deletion of these files via other applications can betracked and/or logged by the processing module 120 for use by thedeletion service application. These previously deleted files can beautomatically processed before deletion, for example, where these filesare processed by the characterization function and/or where the machinelearning model is trained and/or updated based on newly identified filesfor deletion. Similarly, files that are identified for deletion that theuser selects to keep in previous deletion processes of the deletionservice application can be utilized as example data files forpreservation, and can be utilized to ignore similar files to theseexample data files for preservation in future deletion processes.

As another example, the user can indicate via GUI 145 that other imagefiles that are determined to be similar to files previously uploaded tosocial media identified for preservation automatically. For example,image files similar to other image files that were uploaded to aparticular social media application should be saved, as they mightcorrespond to photos the user associates with being of a higher qualityand/or being worthy of sharing. Images uploaded to identified socialmedia applications can be utilized as example image files forpreservation. For example, the processing module 120 can process imagefiles as they are uploaded to a social media application to generateand/or update the machine learning model based on newly uploaded photos.As another example, the deletion service application can temporarilydownload files that were previously uploaded to the user's social mediaaccount to generate and/or update the machine learning model. In someembodiments, a version of the image file that corresponds to an originalimage that is unedited by applying filtering and/or other editing viaexecution of the social media application prior to posting to the socialmedia account is extracted and/or fetched from memory module 110. Thiscan be ideal in ensuring that similar photos are identified in theiroriginal unedited state, as this editing can be accomplished once theuser determines to post the photo to social media. In some embodiments,image files are only saved if they are determined be similar to theexample image files uploaded to social media, but also not a duplicateand/or substantially identical to any of the example image files asdetermined by performing similarity function 252. In some embodiments,if these image files are later determined to have been posted to a useraccount of the same or different social media application utilized toidentify the example image files, these can be identified for deletion.In some embodiments, these similar image files are displayed to the uservia a prompt displayed via GUI 145 recommending that these similar imagefiles be posted to social media, where the most image files determinedto be most similar to the example image files are recommended and/ordisplayed first. The deletion service application can facilitateuploading of a selected image file from the list of presentedrecommendations to the server system associated with the social mediaapplication via the user account, and/or can further facilitate deletionof the image files that were not selected to be posted to the socialmedia application.

FIG. 4F illustrates criteria utilized to identify photos that areredundant and/or substantially identical. For example, if a user tookseveral photos with a same camera of the client device within a sametime frame and/or took several screenshots on the client device within asame time frame, it is likely that a user was attempting to capture aparticular shot, for example, by testing different angles of the camera,different filters, different poses of people in the picture, and/or byusing different scenery as backdrops. As a particular example, the usermay take a series of pictures of their face with their front-facingcamera and/or a series of pictures of their body by utilizing a mirrorand their rear-facing camera to attempt to capture a shot with the bestfacial expression, a shot with best lighting, and/or a shot with a headat an angle or body in a pose that best accentuates their face, makeup,hair, or outfit. As another particular example, the user, or a differentperson operating a camera application of the client device 100, may takea series of photos in an attempt to capture an action shot or a groupaction shot in rapid succession to capture multiple shots of a singleattempt of performing the action, and/or to take a series of photoscorresponding to multiple attempts of performing the action. These photoshoots may result in dozens or hundreds of photos being stored on thecamera, where the user only intends to keep one or two photos of a photoshoot in storage and/or for upload to a social media application.

The user can select how many photos of the same photo shoot bepreserved, and/or can select whether or not the photos to be preservedare automatically selected by the deletion service application and/orare selected by the user. The user can also indicate an amount of timethat is utilized to dictate that photos are included in the same photoshoot. For example, the user can select that any set of photos takenwithin the same three minute time frame be identified as a photo shoot.The user can further indicate that a selected threshold minimum numberof photos taken within the selected amount of time are required toidentify the set of photos as a photo shoot, for example, by identifyingthat a set of photos are to be identified as a set of photos in a photoshoot only if the set of photos includes at least ten photos are takenwithin the three minute time frame. This criteria can be utilized by thesimilarity function to identify similar data file subsets. Thesegroupings can further be generated based on determining content of theimage files in the same group is similar, that scenery in the imagefiles in the same group is the same or similar, that a landmark,building, or other feature detected in the all of the image files in thesame group is the same, that all of the image files in the same groupincludes the same group of people and/or at least a threshold number ora threshold proportion of same people, and/or that the people of theimage file are executing and/or attempting the same type of pose in allof the images. Some of this criteria can be utilized to distinguishdifferent groupings of photos taken within the same time frame, forexample, where a first grouping includes a group of people attemptingone pose with a first backdrop and where a second grouping includes thegroup of people attempting a different pose with a different backdrop.In some embodiments, at least one photo is selected to be preserved foreach of these different groupings of photos taken within the same timeframe, unless otherwise identified for deletion by the user.

All photos in the same photo shoot can be ranked in accordance withdeletion scores generated as discussed previously, where a photo with alowest deletion score and/or a set of photos with lowest deletion scoresare preserved. Some photos can automatically be identified for deletionand/or otherwise removed from consideration to be preserved if they meetautomatic deletion criteria. A first photo in the photo shoot can have alower deletion score than a second photo in the photo shoot based onvalues of preservation weighing factors and/or deletion weighing factorsof the first photo and the second photo. For example, the first photo inthe photo shoot can have a lower deletion score than a second photo inthe photo shoot in response to the first photo being determined to bemore similar to example image files identified by the user forpreservation than the second photo; in response to the first photo beingdetermined to be more similar to example image files posted to socialmedia than the second photo; in response to the action pose and/or groupaction pose being determined to be attempted more successfully than thesecond photo and/or being determined to be successfully executed by ahigher number of people than the second photo; in response to detectingthat a greater number of people in the first photo are smiling and/orare conveying the same type of facial expression than people in thesecond photo; in response to detecting that a greater number of peoplein the first photo are not blinking than people in the second photo; inresponse to detecting that the first photo and the second photos areattempted jumping photos and that the average distance of each personfrom the ground in the first photo is greater than average distance ofeach person from the ground in the second photo; in response todetecting that the first photo and the second photos are attemptedjumping photos and that the average deviation of each person from themean distance, calculated for the distances of all people from theground in the first photo, is less than the average deviation of eachperson from the mean distance, calculated for the distances of allpeople from the ground in the second photo; in response to determiningthat the first photo includes less faces that are cropped and/orobscured than in the second photo; and/or based on other factors asdiscussed herein.

Other embodiments of GUI 145 may display deletion criteria prompts 242and/or deletion confirmation prompts 244 in accordance with a differentlayout, in accordance with multiple displays displayed at differenttimes, and/or with additional prompts not illustrated in FIGS. 3A-4F.

In various embodiments, a client device includes at least one processorand a memory that stores application data for a plurality ofapplications. The memory further stores executable instructions that,when executed by the client device, cause the client device to determineto perform a deletion evaluation function. A set of deletion candidatedata is extracted from the application data of at least one of theplurality of applications in response to determining to perform thedeletion evaluation function. A subset of the set of deletion candidatedata for deletion is generated by selecting ones of the set of deletioncandidate data that compare favorably to deletion criteria data.Deletion of the subset of the set of deletion candidate data from thememory is facilitated.

FIG. 5 presents a method for execution by a client device that includesat least one processor and memory. The memory can store executableinstructions that, when executed by the client device, cause the clientdevice to perform the steps of FIG. 5 . In some embodiments, the memorystores executable instructions in application data for a deletionservice application installed on the client device. The memory canfurther store application data for a plurality of other applicationsstored on the client device. The client device can perform the steps ofFIG. 5 in conjunction with the execution of the deletion serviceapplication by the at least one processor of the client device.

Step 502 includes determining to perform a deletion evaluation function.For example, this can include determining a predetermined time intervalhas elapsed, can be in determined based on user input to a GUI of thedeletion service application in response to a prompt displayed by theGUI, and/or can be determined in response to determining deletioncriteria, entered by the user via a GUI of the deletion serviceapplication in response to a prompt displayed by the GUI, has been met.This can include determining a current available memory capacity of thememory of the client device compares unfavorably to a memory capacityrequirement of the client device and/or a desired available memorycapacity indicated by the user in deletion criteria via the GUI.

Step 504 includes extracting a set of deletion candidate data fromapplication data of at least one of the plurality of applications inresponse to determining to perform the deletion evaluation function.This can include extracting a plurality of data files from theapplication data. This can include comparing metadata of the applicationdata to deletion criteria entered by the user via a GUI of the deletionservice application, and extracting only data files that are determinedto compare favorably to the deletion criteria based on the metadata.This metadata can include access history of data files, originatingsource data of data files, user account data associated with theapplication installed on the client device, or other information thatindicates whether a data file should be deleted and/or whether contentof the data file should be evaluated to determine whether the data fileshould be deleted.

Step 506 includes generating a subset of the set of deletion candidatedata for deletion by selecting ones of the deletion candidate data thatcompare favorably to deletion criteria data. This can include comparingeach of the set of deletion candidate data to automatic preservationfactors and/or automatic deletion factors of the deletion criteria datadetermined by the user via user input to a GUI of the deletion serviceapplication, where data files and/or applications are included in subsetof the set of deletion candidate data in response to comparing favorablyto at least one of the automatic deletion factors and/or in response tocomparing unfavorably to all of the automatic preservation factors.Generating the subset of the set of deletion candidate data can includeperforming a deletion scoring function on data files of the set ofdeletion candidate data to generate deletion scores for some or all ofthe data files. Generating the subset of the set of deletion candidatedata can include performing a deletion scoring function on one or moreof the plurality of applications indicated in the set of deletioncandidate data to generate deletion scores for one or more of theplurality of applications. The deletion scoring function can be afunction of a plurality of deletion weighing factors of the deletioncriteria data that are selected by the user via the GUI, and a pluralityof corresponding weights that are selected by the user via the GUI. Thedeletion scoring function can be a function of a plurality ofpreservation weighing factors of the deletion criteria data that areselected by the user via the GUI, a plurality of corresponding weightsthat are selected by the user via the GUI. Performing the deletionscoring function can include computing values for each of the pluralityof preservation weighing factors and/or deletion weighing factors, andcan further include summing the products of these values with therespective weights. Generating the subset of the set of deletioncandidate data can include ranking data files and/or applications bytheir respective deletion score, and determining to delete data filesand/or applications with highest ranked deletions scores. Generating thesubset of the set of deletion candidate data can further includedetermining to a number delete data files with highest ranked deletionsscores to meet a deletion quota, determined based on a differencebetween current available memory capacity and a desired available memorycapacity. Generating the subset of the set of deletion candidate datacan include determining sets of identical and/or redundant data filesand/or applications by performing a similarity function, and selectingone data file and/or application in each set of the sets of identicaland/or redundant data files and/or applications to be preserved, andidentifying the remaining data files and/or applications for deletion.

Step 508 includes facilitating deletion of the subset of the set ofdeletion candidate data from the memory. This can include transferringsome or all of the subset of the set of deletion candidate data to anexternal memory and/or archive storage system by transmitting some orall of the subset of the set of deletion candidate data via a networkand/or via a wired or wireless communication interface of the clientdevice.

In some embodiments, the memory further stores second executableinstructions that, when executed by the at least one processor, causethe processor to perform further steps of the method. These furthersteps can include receiving, via a receiver of the client device, theapplication data of the deletion service application via a network,where the application data of the deletion service application istransmitted to the client device by a deletion service server system viathe network. These further steps can include installing the applicationdata of the deletion service application. These further steps caninclude displaying the GUI of the deletion service application inresponse to user input corresponding to the selection of the deletionservice application from the plurality of applications.

The steps performed by the at least one processor in conjunction withexecution of the deletion service application can include receiving userinput generated in response to a prompt displayed via the GUI of thedeletion service application. The deletion evaluation function can beperformed in response to the user input indicating a selection toperform the deletion evaluation function. The steps can includedisplaying, via the GUI of the deletion service application, a prompt toselect the deletion criteria data from a plurality of deletion criteriaoptions. The steps can include determining the deletion criteria data inresponse to the user input generated in response to the prompt.

The steps performed by the at least one processor in conjunction withexecution of the deletion service application can include displaying,via the GUI of the deletion service application, the subset of the setof deletion candidate data. The steps can include displaying, via theGUI of the deletion service application, a prompt to select whether eachof the subset of deletion candidate data be preserved or deleted. Thesteps can include receive user input in response to the promptindicating a second subset of the subset of the set of deletioncandidate data selected for deletion, where deletion is facilitated foronly ones of the second subset of the subset of the set of deletioncandidate data. The user can further select, via the GUI, whether eachof the subset of deletion candidate data be transmitted to an archivestorage system and/or be stored in an external memory device. The stepscan include facilitating the transfer of some or all of the secondsubset of the subset of the set of deletion candidate data selected fordeletion to the archive storage system and/or external memory device viathe network and/or via a wired and/or wireless communication interface.

In various embodiments, at least one of the plurality of applicationsincludes a media application storing a plurality of media files.Extracting a set of deletion candidate data includes extracting a subsetof the plurality of media files. The subset of the set of deletioncandidate data can include at least one of the subset of the pluralityof media files.

In various embodiments, the deletion criteria data indicates a mediafile similarity threshold. Performing the deletion evaluation functioncan include generating a plurality of similarity values for a pluralityof sets of the subset of media files by performing a similarly functionon each of the plurality of sets of the subset of media files. A set ofsimilar media files with a corresponding one of the plurality ofsimilarity values that compares favorably to the similarity thresholdcan be identified. One of the set of similar media files can beautomatically selected to be preserved. Remaining ones of the set ofsimilar media files can be automatically selected to be included in thesubset of the set of deletion candidate data to be deleted. In variousembodiments, the similarity threshold corresponds to a duplicate contentcondition, and the set of similar media files correspond to media filesthat are determined to contain duplicate content. In variousembodiments, the set of similar media files correspond to media filesthat have at least one difference in content. For example, the set ofsimilar media files can be otherwise determined to be redundant despitethe at least one difference in content.

In various embodiments, the set of similar media files are photographsand/or videos captured by a camera of the client device. Performing thesimilarity function can include comparing timestamp data of a pluralityof photographs and/or videos. The similarity threshold includes athreshold time interval, and the set of similar media files are selectedin response to determining the corresponding ones of the plurality ofphotographs and/or videos were captured by the client device in anamount of time that compares favorably to the threshold time interval.

In various embodiments, the deletion criteria data includes a media filesharing condition. At least one of the subset of the set of deletioncandidate data are selected for deletion in response to determining thatthe media files of the subset of the set of deletion candidate data weretransmitted, via a network, in conjunction with a social mediaapplication of the plurality of applications and/or a messagingapplication of the plurality of applications.

In various embodiments, the deletion criteria data includes a screenshotcondition. At least one of the subset of the set of deletion candidatedata are selected for deletion in response to determining that the mediafiles of the subset of the set of deletion candidate data correspond toscreenshots captured by the client device.

In various embodiments, the deletion criteria data includes afront-facing camera condition. At least one of the subset of the set ofdeletion candidate data are selected for deletion in response todetermining that the media files of the subset of the set of deletioncandidate data correspond to photographs captured by a front-facingcamera of the client device.

In various embodiments, the deletion criteria data includes an externalsource condition. At least one of the subset of the set of deletioncandidate data are selected for deletion in response to determining thatthe media files of the subset of the set of deletion candidate datacorrespond to photographs that were not captured by a camera of theclient device.

In various embodiments, preservation condition data indicates at leastone favorable feature. The deletion criteria data is based on an inverseof preservation condition data. The subset of the set of deletioncandidate data are selected for deletion in response to determining thatthe subset of the set of deletion candidate data compares unfavorably tothe preservation condition data. In some embodiments, all of the set ofdeletion candidate data that is determined to compare unfavorably to thepreservation condition data is automatically included in the subset ofthe set of deletion candidate data. In other embodiments, at least oneof the set of deletion candidate data that compares unfavorably to thepreservation condition data is not selected to be included in the subsetof the set of deletion candidate data.

In various embodiments, the deletion candidate data corresponds tophotographs. The method performed in conjunction with execution of thedeletion service application by the at least one processor can includegenerating feature detection data for each of the plurality ofphotographs by performing a computer vision function on the each of theplurality of photographs. The subset of deletion candidate data isgenerated by selecting ones of the plurality of photographs with featuredetection data that indicates the at least one favorable feature is notincluded in the ones of the plurality of photographs.

In various embodiments, the at least one favorable feature includes aface, and the subset of the set of deletion candidate data are selectedfor deletion in response to determining that the feature detection dataof the ones of the plurality of photographs indicate the ones of theplurality of photographs do not include at least one face. In someembodiments, only photographs determined to have been taken by afront-facing camera of the client device that are further determined tonot include at least one face are selected for deletion. In variousembodiments, the least one favorable feature includes a face conveying apositive emotion, and the subset of the set of deletion candidate dataare selected for deletion in response to determining that the featuredetection data of the ones of the plurality of photographs indicate theones of the plurality of photographs do not include at least one faceconveying a positive emotion. In various embodiments, the least onefavorable feature includes a plurality of faces of a plurality of socialcontacts of a user of the client device. The subset of the set ofdeletion candidate data are selected for deletion in response todetermining that the feature detection data of the ones of the pluralityof photographs indicate the ones of the plurality of photographs do notinclude at least one of the plurality of faces of the plurality ofsocial contacts.

In various embodiments, the deletion criteria data indicates at leastone unfavorable feature. The subset of deletion candidate data isgenerated by selecting ones of the plurality of photographs with featuredetection data, generated by performing the computer vision function onphotographs of the deletion candidate data, that indicates the at leastone unfavorable feature is included in the ones of the plurality ofphotographs.

In various embodiments, the least one unfavorable feature corresponds toa failure of an action shot. The subset of the set of deletion candidatedata are selected for deletion in response to determining that thefeature detection data of the ones of the plurality of photographsindicate the ones of the plurality of photographs include the failure ofthe action shot. In various embodiments, generating the featuredetection data includes identifying a set of the plurality ofphotographs corresponds to an attempt at the action shot. At least oneof the set of the plurality of photographs corresponds to a success ofthe action shot. The ones of the plurality of photographs included inthe subset of deletion candidate data are identified from the set of theplurality of photographs based on determining the ones of the pluralityof photographs correspond to the failure of the action shot.

In various embodiments, the set of the plurality of photographsdetermined to correspond to an attempt at an action shot are identifiedbased on identifying a plurality of people in each of the set of theplurality of photographs and further based on identifying at least athreshold proportion of the plurality of people are jumping. The atleast one of the set of the plurality of photographs corresponding tothe success of the action shot includes every one of the plurality ofpeople jumping, and the ones of the plurality of photographs included inthe subset of deletion candidate data are identified by determining atleast one of the plurality of people is not jumping in the ones of theplurality of photographs. In various embodiments, the at least athreshold proportion of the plurality of people detected to be jumpingin the each of the set of the plurality of photographs by identifying ahorizon line in the each of the set of the plurality of photographs, andby determining that the at least a threshold proportion of the pluralityof people are entirely above the horizon line in the set of theplurality of photographs. Determining at least one of the plurality ofpeople is not jumping in the ones of the plurality of photographsincludes determining that a portion of the at least one of the pluralityof people is below the horizon line in the ones of the plurality ofphotographs.

In various embodiments, the least one unfavorable feature includes aface conveying a negative emotion. The subset of the set of deletioncandidate data are selected for deletion in response to determining thatthe feature detection data of the ones of the plurality of photographsindicate the ones of the plurality of photographs include at least oneface conveying the negative emotion.

In various embodiments, the least one unfavorable feature includes aface of an unfavorable person. The subset of the set of deletioncandidate data are selected for deletion in response to determining thatthe feature detection data of the ones of the plurality of photographsindicate the ones of the plurality of photographs include the face ofthe unfavorable person.

In various embodiments, the method performed in conjunction withexecution of the deletion service application via the at least oneprocessor includes extracting a first plurality of social contacts ofthe user from user profile information for the user included inapplication data of at least one of the plurality of applications thatcorresponds to a social media application at a first time. The methodincludes extracting a second plurality of social contacts of the userfrom user profile information for the user included in application dataof at least one of the plurality of applications that corresponds to asocial media application at a second time that is after the first time.The unfavorable person is identified by determining one of the firstplurality of social contacts is not in the second plurality of socialcontacts. The method can include determining the face of the unfavorableperson based on at least one photograph posted to the social mediaapplication by the unfavorable person via a client device associatedwith the unfavorable person, such as a profile picture associated withthe unfavorable person. The method can include determining the face ofthe unfavorable person based on a picture stored in a contactsapplication and/or messaging application as a profile picture for theundesirable person in the contacts application or the messagingapplication.

In various embodiments, the method performed in conjunction withexecution of the deletion service application via the at least oneprocessor includes determining the user is in a relationship with asignificant other by extracting first romantic relationship data fromuser profile information for the user included in application data of atleast one of the plurality of applications that corresponds to a socialmedia application at a first time. The method includes determining theuser is no longer in the relationship with the significant other byextracting second romantic relationship data the user profileinformation for the user at a second time that is after the first time.The method includes identifying the unfavorable person based ondetermining the user is no longer in the relationship with thesignificant other, where the unfavorable person corresponds to thesignificant other.

In various embodiments, the method includes extracting contactinformation of the unfavorable person from one of a plurality of contactprofiles included in application data of one of the plurality ofapplications that corresponds to a contact application, where theunfavorable person is associated with the one of the plurality ofcontact profiles. The method includes utilizing the contact informationto extract a plurality of text messages that were sent by theunfavorable person from application data of one of the plurality ofapplications that corresponds to a text messaging application. Themethod includes generating the subset of the set of deletion candidatedata to include the plurality of text messages that were sent by theunfavorable person in the subset of the set of deletion candidate databased on the deletion criteria data indicating that text messages of anysocial contact determined to be an unfavorable person be deleted.

In various embodiments, the subset of the set of deletion candidate dataincludes an entirety of application data for one of the plurality ofapplications. Facilitating deletion of the subset of the set of deletioncandidate data includes facilitating uninstalling of the one of theplurality of applications. In various embodiments, the deletion criteriadata includes an unused application condition. The entirety ofapplication data for the one of the plurality of applications isincluded in the subset of the set of deletion candidate data in responseto determining the one of the plurality of applications has not beenopened for at least a threshold amount of time.

In various embodiments, the deletion criteria data includes a duplicateapplication service condition. The method includes determining that anew application has been installed to the client device and furtherincludes determining one of a plurality of service types of the newapplication. The entirety of application data for the one of theplurality of applications is included in the subset of the set ofdeletion candidate data in response to determining the one of theplurality of applications corresponds to a same one of the plurality ofservice types as the new one of the plurality of applications.

In various embodiments, the method includes determining that frequencyof use of another one of the plurality of applications has increased byat least a threshold amount, and determining one of a plurality ofservice types of the another one of the plurality of applications. Theentirety of application data for the one of the plurality ofapplications is included in the subset of the set of deletion candidatedata in response to determining the one of the plurality of applicationscorresponds to a same one of the plurality of service types as theanother one of the plurality of applications.

In various embodiments, the deletion criteria data includes a profiledeletion criteria. The method includes determining a user profileassociated with the one of the plurality of applications of the clientapplications has been deleted. The entirety of application data for theone of the plurality of applications is included in the subset of theset of deletion candidate data in response to determining the userprofile associated with the one of the plurality of applications of theclient applications has been deleted.

In various embodiments, the method includes determine a subscriptionassociated with the one of the plurality of applications of the clientapplications has been cancelled. The entirety of application data forthe one of the plurality of applications is included in the subset ofthe set of deletion candidate data in response to determining thesubscription associated with the one of the plurality of applications ofthe client applications has been cancelled.

In various embodiments, the one of the plurality of applicationscorresponds to a dating application. The method includes determining arelationship status of a user of the client device has changed fromsingle to in a relationship. The entirety of application data for theone of the plurality of applications is included in the subset of theset of deletion candidate data in response to determining therelationship status of a user of the client device has changed fromsingle to in a relationship.

In various embodiments, the relationship status of a user of the clientdevice is determined based on extracting romantic relationship data fromuser profile information for the user included in application data of atleast one of the plurality of applications that corresponds to a socialmedia application. The relationship status of a user of the clientdevice is determined to have changed from single to in a relationshipwhen romantic relationship data indicates the relationship status haschanged from single to in a relationship.

In various embodiments, determining the relationship status of a user ofthe client device has changed from single to in a relationship includesextracting messaging data in application data of at least one of theplurality of applications that corresponds to a messaging application.The user is determined to have has begun a relationship with one of aplurality of social contacts based on evaluating messages exchangedbetween the user and the one of the plurality of social contacts in themessaging data. In various embodiments, determining the user has begun arelationship with one of a plurality of social contacts includesdetermining a frequency of the messages exchanged between the user andone of a plurality of social contacts has increased by at least athreshold amount. In various embodiments, determining the user has beguna relationship with one of a plurality of social contacts includesdetermining a frequency of the messages exchanged between the user andone of a plurality of social contacts has increased to be greater than aplurality of frequencies of messages exchanged between the user andother ones of a plurality of social contacts by at least a thresholdamount. In various embodiments, determining the user has begun arelationship with one of a plurality of social contacts includesperforming a natural language processing function on text of messagesexchanged between the user and the one of a plurality of socialcontacts, and further includes determining a frequency of use of atleast one term of endearment has increased by at least a thresholdamount. In various embodiments, determining the user has begun arelationship with one of a plurality of social contacts includesdetermining a frequency of use of at least one emoticon determined to beassociated with romance has increased by at least a threshold amount inthe messages exchanged between the user and the one of a plurality ofsocial contacts. In various embodiments, determining the user has beguna relationship with one of a plurality of social contacts includesdetermining a frequency of photographs included in the messagesexchanged between the user and the one of a plurality of social contactshas increased by at least a threshold amount. In various embodiments,determining the user has begun a relationship with one of a plurality ofsocial contacts includes determining a frequency of photographs,included in messages sent by the client device to the one of a pluralityof social contacts, that were determined to have been taken by afront-facing camera of the client device has increased by at least athreshold amount. In various embodiments, determining the user has beguna relationship with one of a plurality of social contacts includesperforming a computer vision function on each of the photographs todetermine whether the user is included in ones of the photographs, andfurther includes determining that a frequency of photographs included inmessages sent by the client device to the one of a plurality of socialcontacts that are determined to include the user has increased by atleast a threshold amount.

In various embodiments, the method performed in conjunction withexecution of the deletion service application via the at least oneprocessor includes performing a deletion scoring function on each of theset of deletion candidate data to generate a set of deletion scorescorresponding to the set of deletion candidate data. Generating thesubset of the set of deletion candidate data for deletion includesselecting ones of the set of deletion candidate data with correspondingones of the set of deletion scores that compare favorably to a deletionscoring threshold of the deletion criteria data. In various embodiments,the method includes generating a ranking of the set of deletioncandidate data in accordance with the set of deletion scores, wheregenerating the subset of the set of deletion candidate data for deletionincludes selecting ones of the set of deletion candidate data withhighest ranked ones of the set of deletion scores in the ranking.

In various embodiments, the method includes determining a data size ofthe each of the set of deletion candidate data. A minimum number of theones of the set of deletion candidate data with highest ranked ones ofthe set of deletion scores in the ranking is identified, where theminimum number corresponds to the minimum number of these highest rankedones of the set of deletion candidate data that have a total data sizethat compares favorably to a deletion data size requirement of thedeletion criteria data. The total data size is the sum of data sizes ofeach of the minimum number of the ones of the set of deletion candidatedata with the highest ranked ones of the set of deletion scores. Thesubset of the set of deletion candidate data by selecting only theminimum number of the ones of the set of deletion candidate data withthe highest ranked ones of the set of deletion scores.

In various embodiments, the deletion scoring function is a function ofon at least one of: an age of the each of the set of deletion candidatedata, a frequency of access of the each of the set of deletion candidatedata, an amount of time since a last access of the each of the set ofdeletion candidate data, or a data size of the each of the set ofdeletion candidate data.

It is noted that terminologies as may be used herein such as bit stream,stream, signal sequence, etc. (or their equivalents) have been usedinterchangeably to describe digital information whose contentcorresponds to any of a number of desired types (e.g., data, video,speech, text, graphics, audio, etc. any of which may generally bereferred to as ‘data’).

As may be used herein, the terms “substantially” and “approximately”provides an industry-accepted tolerance for its corresponding termand/or relativity between items. For some industries, anindustry-accepted tolerance is less than one percent and, for otherindustries, the industry-accepted tolerance is 10 percent or more.Industry-accepted tolerances correspond to, but are not limited to,component values, integrated circuit process variations, temperaturevariations, rise and fall times, thermal noise, dimensions, signalingerrors, dropped packets, temperatures, pressures, material compositions,and/or performance metrics. Within an industry, tolerance variances ofaccepted tolerances may be more or less than a percentage level (e.g.,dimension tolerance of less than +/−1%).

As may also be used herein, the term(s) “configured to”, “operablycoupled to”, “coupled to”, and/or “coupling” includes direct couplingbetween items and/or indirect coupling between items via an interveningitem (e.g., an item includes, but is not limited to, a component, anelement, a circuit, and/or a module) where, for an example of indirectcoupling, the intervening item does not modify the information of asignal but may adjust its current level, voltage level, and/or powerlevel. As may further be used herein, inferred coupling (i.e., where oneelement is coupled to another element by inference) includes direct andindirect coupling between two items in the same manner as “coupled to”.

As may even further be used herein, the term “configured to”, “operableto”, “coupled to”, or “operably coupled to” indicates that an itemincludes one or more of power connections, input(s), output(s), etc., toperform, when activated, one or more its corresponding functions and mayfurther include inferred coupling to one or more other items. As maystill further be used herein, the term “associated with”, includesdirect and/or indirect coupling of separate items and/or one item beingembedded within another item.

As may be used herein, the term “compares favorably”, indicates that acomparison between two or more items, signals, etc., provides a desiredrelationship. For example, when the desired relationship is that signal1 has a greater magnitude than signal 2, a favorable comparison may beachieved when the magnitude of signal 1 is greater than that of signal 2or when the magnitude of signal 2 is less than that of signal 1. As maybe used herein, the term “compares unfavorably”, indicates that acomparison between two or more items, signals, etc., fails to providethe desired relationship.

As may be used herein, one or more claims may include, in a specificform of this generic form, the phrase “at least one of a, b, and c” orof this generic form “at least one of a, b, or c”, with more or lesselements than “a”, “b”, and “c”. In either phrasing, the phrases are tobe interpreted identically. In particular, “at least one of a, b, and c”is equivalent to “at least one of a, b, or c” and shall mean a, b,and/or c. As an example, it means: “a” only, “b” only, “c” only, “a” and“b”, “a” and “c”, “b” and “c”, and/or “a”, “b”, and “c”.

As may also be used herein, the terms “processing system”, “processingmodule”, “processing circuit”, “processor”, and/or “processing unit” maybe a single processing device or a plurality of processing devices. Sucha processing device may be a microprocessor, micro-controller, digitalsignal processor, microcomputer, central processing unit, fieldprogrammable gate array, programmable logic device, state machine, logiccircuitry, analog circuitry, digital circuitry, and/or any device thatmanipulates signals (analog and/or digital) based on hard coding of thecircuitry and/or operational instructions. The processing module,module, processing circuit, processing system, and/or processing unitmay be, or further include, memory and/or an integrated memory element,which may be a single memory device, a plurality of memory devices,and/or embedded circuitry of another processing module, module,processing circuit, processing system, and/or processing unit. Such amemory device may be a read-only memory, random access memory, volatilememory, non-volatile memory, static memory, dynamic memory, flashmemory, cache memory, and/or any device that stores digital information.Note that if the processing module, module, processing circuit,processing system, and/or processing unit includes more than oneprocessing device, the processing devices may be centrally located(e.g., directly coupled together via a wired and/or wireless busstructure) or may be distributedly located (e.g., cloud computing viaindirect coupling via a local area network and/or a wide area network).Further note that if the processing module, module, processing circuit,processing system, and/or processing unit implements one or more of itsfunctions via a state machine, analog circuitry, digital circuitry,and/or logic circuitry, the memory and/or memory element storing thecorresponding operational instructions may be embedded within, orexternal to, the circuitry comprising the state machine, analogcircuitry, digital circuitry, and/or logic circuitry. Still further notethat, the memory element may store, and the processing module, module,processing circuit, processing system, and/or processing unit executes,hard coded and/or operational instructions corresponding to at leastsome of the steps and/or functions illustrated in one or more of theFigures. Such a memory device or memory element can be included in anarticle of manufacture.

One or more embodiments have been described above with the aid of methodsteps illustrating the performance of specified functions andrelationships thereof. The boundaries and sequence of these functionalbuilding blocks and method steps have been arbitrarily defined hereinfor convenience of description. Alternate boundaries and sequences canbe defined so long as the specified functions and relationships areappropriately performed. Any such alternate boundaries or sequences arethus within the scope and spirit of the claims. Further, the boundariesof these functional building blocks have been arbitrarily defined forconvenience of description. Alternate boundaries could be defined aslong as the certain significant functions are appropriately performed.Similarly, flow diagram blocks may also have been arbitrarily definedherein to illustrate certain significant functionality.

To the extent used, the flow diagram block boundaries and sequence couldhave been defined otherwise and still perform the certain significantfunctionality. Such alternate definitions of both functional buildingblocks and flow diagram blocks and sequences are thus within the scopeand spirit of the claims. One of average skill in the art will alsorecognize that the functional building blocks, and other illustrativeblocks, modules and components herein, can be implemented as illustratedor by discrete components, application specific integrated circuits,processors executing appropriate software and the like or anycombination thereof.

In addition, a flow diagram may include a “start” and/or “continue”indication. The “start” and “continue” indications reflect that thesteps presented can optionally be incorporated in or otherwise used inconjunction with other routines. In this context, “start” indicates thebeginning of the first step presented and may be preceded by otheractivities not specifically shown. Further, the “continue” indicationreflects that the steps presented may be performed multiple times and/ormay be succeeded by other activities not specifically shown. Further,while a flow diagram indicates a particular ordering of steps, otherorderings are likewise possible provided that the principles ofcausality are maintained.

The one or more embodiments are used herein to illustrate one or moreaspects, one or more features, one or more concepts, and/or one or moreexamples. A physical embodiment of an apparatus, an article ofmanufacture, a machine, and/or of a process may include one or more ofthe aspects, features, concepts, examples, etc. described with referenceto one or more of the embodiments discussed herein. Further, from figureto figure, the embodiments may incorporate the same or similarly namedfunctions, steps, modules, etc. that may use the same or differentreference numbers and, as such, the functions, steps, modules, etc. maybe the same or similar functions, steps, modules, etc. or differentones.

While the transistors in the above described figure(s) is/are shown asfield effect transistors (FETs), as one of ordinary skill in the artwill appreciate, the transistors may be implemented using any type oftransistor structure including, but not limited to, bipolar, metal oxidesemiconductor field effect transistors (MOSFET), N-well transistors,P-well transistors, enhancement mode, depletion mode, and zero voltagethreshold (VT) transistors.

Unless specifically stated to the contra, signals to, from, and/orbetween elements in a figure of any of the figures presented herein maybe analog or digital, continuous time or discrete time, and single-endedor differential. For instance, if a signal path is shown as asingle-ended path, it also represents a differential signal path.Similarly, if a signal path is shown as a differential path, it alsorepresents a single-ended signal path. While one or more particulararchitectures are described herein, other architectures can likewise beimplemented that use one or more data buses not expressly shown, directconnectivity between elements, and/or indirect coupling between otherelements as recognized by one of average skill in the art.

The term “module” is used in the description of one or more of theembodiments. A module implements one or more functions via a device suchas a processor or other processing device or other hardware that mayinclude or operate in association with a memory that stores operationalinstructions. A module may operate independently and/or in conjunctionwith software and/or firmware. As also used herein, a module may containone or more sub-modules, each of which may be one or more modules.

As may further be used herein, a computer readable memory includes oneor more memory elements. A memory element may be a separate memorydevice, multiple memory devices, or a set of memory locations within amemory device. Such a memory device may be a read-only memory, randomaccess memory, volatile memory, non-volatile memory, static memory,dynamic memory, flash memory, cache memory, and/or any device thatstores digital information. The memory device may be in a form asolid-state memory, a hard drive memory, cloud memory, thumb drive,server memory, computing device memory, and/or other physical medium forstoring digital information.

While particular combinations of various functions and features of theone or more embodiments have been expressly described herein, othercombinations of these features and functions are likewise possible. Thepresent disclosure is not limited by the particular examples disclosedherein and expressly incorporates these other combinations.

What is claimed is:
 1. A client device comprising: at least oneprocessor; and a memory that stores: a plurality of photographs;application data corresponding to a plurality of applications includingat least one application that facilitates storage and deletion of theplurality of photographs; and executable instructions associated withthe at least one application, when executed by the at least oneprocessor, cause the client device to: generate feature detection datafor the plurality of photographs by performing a computer visionfunction on the plurality of photographs, wherein the feature detectiondata indicates facial characteristics; generate, based on the featuredetection data, a first subset of the plurality of photographscorresponding to images of a particular person, wherein the first subsetis generated by: determining, based on the feature detection data forthe plurality of photographs, when the facial characteristics match theparticular person; and identifying particular ones of the plurality ofphotographs to include in the first subset of the plurality photographscorresponding to images of the particular person when the facialcharacteristics match the particular person; receive, via a graphicaluser interface, an indication of the particular person; display, via thegraphical user interface, the first subset of the plurality ofphotographs corresponding to images of the particular person; generate,via the graphical user interface, first selection data indicating atleast one of the first subset of the plurality of photographscorresponding to images of the particular person to be deleted from thememory; facilitate, based on the first selection data, deletion of theat least one of the first subset of the plurality of photographscorresponding to images of the particular person to be deleted from thememory; receive source data for the plurality of photographs taken bythe client device, wherein the source data includes geolocation datacollected by the client device that indicates locations where theplurality of photographs were taken; generate, based on the geolocationdata, a second subset of the plurality of photographs corresponding toimages taken at a particular location, wherein the second subset isgenerated by: determining, based on the geolocation data for theplurality of photographs, when the geolocation data corresponds to theparticular location; and identifying particular ones of the plurality ofphotographs to include in the second subset of the plurality ofphotographs corresponding to images taken in the particular locationwhen the geolocation data corresponds to the particular location;receive, via the graphical user interface, an indication of theparticular location; display, via the graphical user interface, thesecond subset of the plurality of photographs corresponding to imagesfrom the particular location; generate, via the graphical userinterface, second selection data indicating at least one of the secondsubset of the plurality of photographs corresponding to images from theparticular location to be deleted from the memory; facilitate, based onthe second selection data, deletion of the at least one of the secondsubset of the plurality of photographs corresponding to images from theparticular location to be deleted from the memory; generate, based onthe feature detection data, a third subset of the plurality ofphotographs corresponding to images of a group of particular people,wherein the third subset is generated by: determining, based on thefeature detection data for the plurality of photographs, when the facialcharacteristics match the particular people; and identifying particularones of the plurality of photographs to include in the third subset ofthe plurality photographs having images of the group of particularpeople when the facial characteristics in the particular ones of theplurality of photographs match the particular people; receive, via thegraphical user interface, an indication of the group of the particularpeople; display, via the graphical user interface, the third subset ofthe plurality of photographs including images of the group of theparticular people; generate, via the graphical user interface, thirdselection data indicating at least one of the third subset of theplurality of photographs corresponding to images of the group of theparticular people to be deleted from the memory; and facilitate, basedon the third selection data, deletion of the at least one of the thirdsubset of the plurality of photographs corresponding to images of thegroup of the particular people to be deleted from the memory.
 2. Theclient device of claim 1, wherein the executable instructions associatedwith the at least one application, when executed by the at least oneprocessor, further cause the client device to: generate, based onfurther feature detection data generated by the computer vision functionand further based on similarity scores from a similarity function, afourth subset of the plurality of photographs corresponding to anobject, wherein the fourth subset is generated by: determining, based onthe feature detection data, a group of photographs of the plurality ofphotographs; determining similarity scores between photographs of thegroup of photographs; and identifying ones of the group of photographsto be included in the fourth subset of the plurality photographscorresponding to images of the object when the similarity scores for thegroup of photographs are within a similarity threshold of one another;receive, via the graphical user interface, an indication of the object;display, via the graphical user interface, the fourth subset of theplurality of photographs corresponding to images of the object;generate, via the graphical user interface, fourth selection dataindicating at least one of the fourth subset of the plurality ofphotographs corresponding to images of the object to be deleted from thememory; and facilitate, based on the fourth selection data, deletion ofthe at least one of the fourth subset of the plurality of photographscorresponding to images of the object to be deleted from the memory. 3.The client device of claim 1, wherein the executable instructionsassociated with the at least one application, when executed by the atleast one processor, further cause the client device to: generate, basedon further feature detection data generated by the computer visionfunction, a fourth subset of the plurality of photographs correspondingto a sunrise, wherein the fourth subset is generated by: identifyingones of the plurality of photographs to be included in the fourth subsetof the plurality photographs corresponding to images of the sunrise;receive, via the graphical user interface, an indication of the sunrise;display, via the graphical user interface, the fourth subset of theplurality of photographs corresponding to images of the sunrise;generate, via the graphical user interface, fourth selection dataindicating at least one of the fourth subset of the plurality ofphotographs corresponding to images of the sunrise to be deleted fromthe memory; and facilitate, based on the fourth selection data, deletionof the at least one of the fourth subset of the plurality of photographscorresponding to images of the sunrise to be deleted from the memory. 4.The client device of claim 1, wherein the executable instructionsassociated with the at least one application, when executed by the atleast one processor, further cause the client device to: generate, basedon further feature detection data generated by the computer visionfunction, a fourth subset of the plurality of photographs correspondingto a sunset, wherein the fourth subset is generated by: identifying onesof the plurality of photographs to be included in the fourth subset ofthe plurality photographs corresponding to images of the sunset;receive, via the graphical user interface, an indication of the sunset;display, via the graphical user interface, the fourth subset of theplurality of photographs corresponding to images of the sunset;generate, via the graphical user interface, fourth selection dataindicating at least one of the fourth subset of the plurality ofphotographs corresponding to images of the sunset to be deleted from thememory; and facilitate, based on the fourth selection data, deletion ofthe at least one of the fourth subset of the plurality of photographscorresponding to images of the sunset to be deleted from the memory. 5.The client device of claim 1, wherein the executable instructionsassociated with the at least one application, when executed by the atleast one processor, further cause the client device to: generate, basedon further feature detection data generated by the computer visionfunction, a fourth subset of the plurality of photographs correspondingto a pet, wherein the fourth subset is generated by: identifying ones ofthe plurality of photographs to be included in the fourth subset of theplurality photographs corresponding to images of the pet; receive, viathe graphical user interface, an indication of the pet; display, via thegraphical user interface, the fourth subset of the plurality ofphotographs corresponding to images of the pet; generate, via thegraphical user interface, fourth selection data indicating at least oneof the fourth subset of the plurality of photographs corresponding toimages of the pet to be deleted from the memory; and facilitate, basedon the fourth selection data, deletion of the at least one of the fourthsubset of the plurality of photographs corresponding to images of thepet to be deleted from the memory.
 6. The client device of claim 1,wherein the executable instructions associated with the at least oneapplication, when executed by the at least one processor, further causethe client device to: generate, based on further feature detection datagenerated by the computer vision function, a fourth subset of theplurality of photographs corresponding to a landscape, wherein thefourth subset is generated by: identifying ones of the plurality ofphotographs to be included in the fourth subset of the pluralityphotographs corresponding to images of the landscape; receive, via thegraphical user interface, an indication of the landscape; display, viathe graphical user interface, the fourth subset of the plurality ofphotographs corresponding to images of the landscape; generate, via thegraphical user interface, fourth selection data indicating at least oneof the fourth subset of the plurality of photographs corresponding toimages of the landscape to be deleted from the memory; and facilitate,based on the fourth selection data, deletion of the at least one of thefourth subset of the plurality of photographs corresponding to images ofthe landscape to be deleted from the memory.
 7. The client device ofclaim 1, wherein the memory includes a cloud memory.
 8. The clientdevice of claim 1, further comprising a camera and wherein the pluralityof photographs are taken by the camera of the client device.
 9. Theclient device of claim 1, wherein the geolocation data includes globalpositioning system (GPS) data.
 10. The client device of claim 1, whereinthe geolocation data is collected based on cellular data.
 11. Anon-transitory computer readable storage medium for use with a clientdevice that includes at least one processor; and a memory that stores aplurality of photographs, application data corresponding to a pluralityof applications including at least one application that facilitatesstorage and deletion of the plurality of photographs, wherein thenon-transitory computer readable storage medium includes executableinstructions associated with the at least one application, when executedby the at least one processor, cause the client device to: generatefeature detection data for the plurality of photographs by performing acomputer vision function on the plurality of photographs, wherein thefeature detection data indicates facial characteristics; generate, basedon the feature detection data, a first subset of the plurality ofphotographs corresponding to images of a particular person, wherein thefirst subset is generated by: determining, based on the featuredetection data for the plurality of photographs, when the facialcharacteristics match the particular person; and identifying particularones of the plurality of photographs to include in the first subset ofthe plurality photographs corresponding to images of the particularperson when the facial characteristics match the particular person;receive, via a graphical user interface, an indication of the particularperson; display, via the graphical user interface, the first subset ofthe plurality of photographs corresponding to images of the particularperson; generate, via the graphical user interface, first selection dataindicating at least one of the first subset of the plurality ofphotographs corresponding to images of the particular person to bedeleted from the memory; facilitate, based on the first selection data,deletion of the at least one of the first subset of the plurality ofphotographs corresponding to images of the particular person to bedeleted from the memory; receive source data for the plurality ofphotographs taken by the client device, wherein the source data includesgeolocation data collected by the client device that indicates locationswhere the plurality of photographs were taken; generate, based on thegeolocation data, a second subset of the plurality of photographscorresponding to images taken at a particular location, wherein thesecond subset is generated by: determining, based on the geolocationdata for the plurality of photographs, when the geolocation datacorresponds to the particular location; and identifying particular onesof the plurality of photographs to include in the second subset of theplurality of photographs corresponding to images taken in the particularlocation when the geolocation data corresponds to the particularlocation; receive, via the graphical user interface, an indication ofthe particular location; display, via the graphical user interface, thesecond subset of the plurality of photographs corresponding to imagesfrom the particular location; generate, via the graphical userinterface, second selection data indicating at least one of the secondsubset of the plurality of photographs corresponding to images from theparticular location to be deleted from the memory; facilitate, based onthe second selection data, deletion of the at least one of the secondsubset of the plurality of photographs corresponding to images from theparticular location to be deleted from the memory; generate, based onthe feature detection data, a third subset of the plurality ofphotographs corresponding to images of a group of particular people,wherein the third subset is generated by: determining, based on thefeature detection data for the plurality of photographs, when the facialcharacteristics match the particular people; and identifying particularones of the plurality of photographs to include in the third subset ofthe plurality photographs having images of the group of particularpeople when the facial characteristics in the particular ones of theplurality of photographs match the particular people; receive, via thegraphical user interface, an indication of the group of the particularpeople; display, via the graphical user interface, the third subset ofthe plurality of photographs including images of the group of theparticular people; generate, via the graphical user interface, thirdselection data indicating at least one of the third subset of theplurality of photographs corresponding to images of the group of theparticular people to be deleted from the memory; and facilitate, basedon the third selection data, deletion of the at least one of the thirdsubset of the plurality of photographs corresponding to images of thegroup of the particular people to be deleted from the memory.
 12. Thenon-transitory computer readable storage medium of claim 11, wherein theexecutable instructions associated with the at least one application,when executed by the at least one processor, further cause the clientdevice to: generate, based on further feature detection data generatedby the computer vision function and further based on similarity scoresfrom a similarity function, a fourth subset of the plurality ofphotographs corresponding to an object, wherein the fourth subset isgenerated by: determining, based on the feature detection data, a groupof photographs of the plurality of photographs; determining similarityscores between photographs of the group of photographs; and identifyingones of the group of photographs to be included in the fourth subset ofthe plurality photographs corresponding to images of the object when thesimilarity scores for the group of photographs are within a similaritythreshold of one another; receive, via the graphical user interface, anindication of the object; display, via the graphical user interface, thefourth subset of the plurality of photographs corresponding to images ofthe object; generate, via the graphical user interface, fourth selectiondata indicating at least one of the fourth subset of the plurality ofphotographs corresponding to images of the object to be deleted from thememory; and facilitate, based on the fourth selection data, deletion ofthe at least one of the fourth subset of the plurality of photographscorresponding to images of the object to be deleted from the memory. 13.The non-transitory computer readable storage medium of claim 11, whereinthe executable instructions associated with the at least oneapplication, when executed by the at least one processor, further causethe client device to: generate, based on further feature detection datagenerated by the computer vision function, a fourth subset of theplurality of photographs corresponding to a sunrise, wherein the fourthsubset is generated by: identifying ones of the plurality of photographsto be included in the fourth subset of the plurality photographscorresponding to images of the sunrise; receive, via the graphical userinterface, an indication of the sunrise; display, via the graphical userinterface, the fourth subset of the plurality of photographscorresponding to images of the sunrise; generate, via the graphical userinterface, fourth selection data indicating at least one of the fourthsubset of the plurality of photographs corresponding to images of thesunrise to be deleted from the memory; and facilitate, based on thefourth selection data, deletion of the at least one of the fourth subsetof the plurality of photographs corresponding to images of the sunriseto be deleted from the memory.
 14. The non-transitory computer readablestorage medium of claim 11, wherein the executable instructionsassociated with the at least one application, when executed by the atleast one processor, further cause the client device to: generate, basedon further feature detection data generated by the computer visionfunction, a fourth subset of the plurality of photographs correspondingto a sunset, wherein the fourth subset is generated by: identifying onesof the plurality of photographs to be included in the fourth subset ofthe plurality photographs corresponding to images of the sunset;receive, via the graphical user interface, an indication of the sunset;display, via the graphical user interface, the fourth subset of theplurality of photographs corresponding to images of the sunset;generate, via the graphical user interface, fourth selection dataindicating at least one of the fourth subset of the plurality ofphotographs corresponding to images of the sunset to be deleted from thememory; and facilitate, based on the fourth selection data, deletion ofthe at least one of the fourth subset of the plurality of photographscorresponding to images of the sunset to be deleted from the memory. 15.The non-transitory computer readable storage medium of claim 11, whereinthe executable instructions associated with the at least oneapplication, when executed by the at least one processor, further causethe client device to: generate, based on further feature detection datagenerated by the computer vision function, a fourth subset of theplurality of photographs corresponding to a pet, wherein the fourthsubset is generated by: identifying ones of the plurality of photographsto be included in the fourth subset of the plurality photographscorresponding to images of the pet; receive, via the graphical userinterface, an indication of the pet; display, via the graphical userinterface, the fourth subset of the plurality of photographscorresponding to images of the pet; generate, via the graphical userinterface, fourth selection data indicating at least one of the fourthsubset of the plurality of photographs corresponding to images of thepet to be deleted from the memory; and facilitate, based on the fourthselection data, deletion of the at least one of the fourth subset of theplurality of photographs corresponding to images of the pet to bedeleted from the memory.
 16. The non-transitory computer readablestorage medium of claim 11, wherein the executable instructionsassociated with the at least one application, when executed by the atleast one processor, further cause the client device to: generate, basedon further feature detection data generated by the computer visionfunction, a fourth subset of the plurality of photographs correspondingto a landscape, wherein the fourth subset is generated by: identifyingones of the plurality of photographs to be included in the fourth subsetof the plurality photographs corresponding to images of the landscape;receive, via the graphical user interface, an indication of thelandscape; display, via the graphical user interface, the fourth subsetof the plurality of photographs corresponding to images of thelandscape; generate, via the graphical user interface, fourth selectiondata indicating at least one of the fourth subset of the plurality ofphotographs corresponding to images of the landscape to be deleted fromthe memory; and facilitate, based on the fourth selection data, deletionof the at least one of the fourth subset of the plurality of photographscorresponding to images of the landscape to be deleted from the memory.17. The non-transitory computer readable storage medium of claim 11,wherein the memory includes a cloud memory.
 18. The non-transitorycomputer readable storage medium of claim 11, wherein the client devicefurther includes a camera and wherein the plurality of photographs aretaken by the camera of the client device.
 19. The non-transitorycomputer readable storage medium of claim 11, wherein the geolocationdata includes global positioning system (GPS) data.
 20. Thenon-transitory computer readable storage medium of claim 11, wherein thegeolocation data is collected based on cellular data.